当我收到帖子的评论时
我得到评论,人的名字(和id),但不是他们的个人资料图片。
要恢复他的配置文件图片,我必须每次重复GET查询。
因此,如果有150个评论,我进行150个GET查询,只是为了检索配置文件照片的URL .
页面加载时间有时需要30秒.
是否可以在JSON中直接恢复配置文件照片的url字段以及所有注释?
发布于 2015-09-16 19:55:34
为什么首先需要检索配置文件图片URL?您已经有了用户ids,因此您可以直接使用https://graph.facebook.com/v2.4/{user_id}/picture作为img元素的src属性值-它将重定向到Facebook的CDN上的实际图像的正确位置。
还是需要实际的图像URL用于另一个目的,在网页…的范围之外??
在这种情况下,您可以使用API的场展开特性(因此不需要批处理请求):
/post_id/comments?fields=message,from{name,picture}这将为您提供评论的内容,以及发表评论的用户的名称和配置文件图片URL。(如果需要更多字段,则必须将它们添加到列表中。)
发布于 2015-09-16 15:20:07
这可以通过批处理请求来完成,但这有点困难:
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},用实际的用户访问令牌交换{YOUR_USER_ACCESS_TOKEN}。
请注意,/?ids=端点一次只能用于50个ids,这意味着您需要对齐
{
"method":"GET",
"name":"pics1",
"relative_url":"?ids={result=postcomments:$.comments.data.[0:50:1].from.id}&fields=id,name,picture"
}在第一个查询中将数字设置为limit (极限/50)。此外,您还必须调整[0:50:1]部件,使其能够反映实际的“位置”。
https://stackoverflow.com/questions/32611504
复制相似问题