簡體   English   中英

Facebook API-獲取“我的應用程序”用戶的公開資料信息

[英]Facebook API - Get Public Profile Info of Users of My App

如何獲得通過Facebook一次登錄我的Web應用程序的用戶的公開資料數據? 我為每個這些用戶都有舊的訪問令牌,電子郵件地址和ID。 他們中的許多人在我們的網站上發表了評論和/或帖子,我想在評論旁邊顯示他們的Facebook個人資料。 (類似於該文章底部的內容,但該帖子是在我們的Web應用程序中完成的,並且永遠不會顯示在Facebook上。)我可以得到照片的網址,如下所示:

$fb_photo_json = file_get_contents(https://graph.facebook.com/[facebook user id here]/picture?redirect=false);
$fb_photo_data = json_decode($fb_photo_json);
$fb_profile_img_url = $fb_photo_data->data->url;

我嘗試過類似的方法來獲取Facebook用戶的名稱:

$fb_data_json = file_get_contents('https://graph.facebook.com/[facebook user id here]?fields=first_name,last_name');

但我總是得到這個錯誤:

{
   "error": {
      "message": "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
      "type": "GraphMethodException",
      "code": 100
   }
}

這是一個令人沮喪的錯誤! 我已經閱讀了Facebook API文檔的大部分內容,並且發現它很密集並且幾乎沒有幫助。 每次我請求此處建議的數據時,我是否都需要一個單獨的訪問令牌? 如果是這樣,這似乎是令人望而卻步的,因為那將是許多外部請求。 (我們有很多來自不同用戶的帖子。)

更新

我一直在搞弄Facebook的Graph API Explorer ,當將“應用程序”選擇為“ Graph API Explorer”時,出現與上述相同的錯誤。 但是,當我將“應用程序”的名稱更改為我的Web應用程序時,單擊“獲取訪問令牌”,然后在GET字段中輸入我的一個用戶的Facebook ID,它可以正常工作! 現在,我可以獲得通過Facebook登錄到我的網站的任何用戶的公共資料信息。 這必須意味着我要做的就是隨同請求一起發送我的應用的訪問令牌。 不確定如何執行此操作,但是一旦確定,我就會將其發布...明天(我困了)。

這有效:

$fb_user_info = file_get_contents('https://graph.facebook.com/{users-fb-id}?fields=first_name,last_name&access_token={my-apps-access-token}');

可以這樣獲取訪問令牌:

$app_token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM