[英]PHP Facebook Graph API get posts comments WITH user photo field
當我收到帖子的評論時
我收到評論、此人的姓名(和 ID),但沒有收到他們的個人資料照片。
要恢復他的個人資料圖片,我必須在每次 GET 查詢時重復
因此,如果有 150 條評論,我會進行 150 次 GET 查詢以檢索個人資料照片的 URL...
頁面加載時間有時需要長達 30 秒...
是否可以直接在帶有所有評論的 JSON 中恢復個人資料照片的 url 字段?
為什么首先需要檢索個人資料圖片 URL? 您已經擁有用戶 ID,因此您可以直接使用https://graph.facebook.com/v2.4/{user_id}/picture
作為img
元素的src
屬性值 - 它會重定向到正確的位置Facebook 的 CDN 上的實際圖像。
或者您是否需要將實際圖像 URL 用於網頁領域之外的其他目的……?
在這種情況下,您可以使用 API 的字段擴展功能(因此您不需要批量請求):
/post_id/comments?fields=message,from{name,picture}
這將為您提供評論的內容,以及發表評論的用戶的姓名和個人資料圖片 URL。 (如果您需要更多字段,則必須將它們添加到列表中。)
這可以通過批量請求來完成,但有點困難:
curl -k \
-F 'access_token={YOUR_USER_ACCESS_TOKEN}' \
-F 'include_headers=false' \
-F 'batch=[
{
"method":"GET",
"name":"postcomments",
"relative_url":"{post_id}?fields=comments.fields(from.fields(id)).limit(50)",
},
{
"method":"GET",
"name":"pics1",
"relative_url":"?ids={result=postcomments:$.comments.data.[0:50:1].from.id}&fields=id,name,picture"
}]' \
https://graph.facebook.com
將{post_id}
與有效的帖子 ID 交換,將{YOUR_USER_ACCESS_TOKEN}
與實際的用戶訪問令牌{YOUR_USER_ACCESS_TOKEN}
。
請注意/?ids=
端點一次只能用於 50 個 id,這意味着您需要對齊
{
"method":"GET",
"name":"pics1",
"relative_url":"?ids={result=postcomments:$.comments.data.[0:50:1].from.id}&fields=id,name,picture"
}
使用您在第一個查詢中設置為limit
的數字 (limit/50)。 此外,您必須調整[0:50:1]
部分,使其反映實際的“位置”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.