当我得到一个帖子的评论
https://graph.facebook.com/v2.4/ POST_ID
/评论
我得到评论,这个人的名字(和id),但不是他们的头像。
要恢复他的个人资料图片,我必须每次都重复一个GET查询
https://graph.facebook.com/ USER_ID /图片?重定向= false
所以如果有150条评论,我做150个GET查询只是为了检索个人资料照片的URL…
页面加载时间有时长达30秒…
是否有可能在JSON中直接恢复所有评论的个人资料照片的url字段?
为什么首先需要检索个人资料图片的url ?你已经有了用户id,所以你可以直接使用https://graph.facebook.com/v2.4/{user_id}/picture
作为src
元素的CC_2属性值-它将重定向到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交换{post_id}
,用实际的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/50)中设置的数字为limit
。此外,你必须调整[0:50:1]
部分,使其反映实际的"位置"。