簡體   English   中英

PHP Facebook Graph API 使用用戶照片字段獲取帖子評論

[英]PHP Facebook Graph API get posts comments WITH user photo field

當我收到帖子的評論時

https://graph.facebook.com/v2.4/ POST_ID /comments

我收到評論、此人的姓名(和 ID),但沒有收到他們的個人資料照片。

要恢復他的個人資料圖片,我必須在每次 GET 查詢時重復

https://graph.facebook.com/ USER_ID /picture?redirect=false

因此,如果有 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.

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