我正在使用图谱api在facebook上查询评论已发布图片或喜欢/ me用户已发布图片的用户的完整个人资料图片。我正在尝试:
在一个查询中:这不起作用(它没有提供被评论用户的详细信息):
me/photos/uploaded?fields=from,images,comments.picture,likes.picture&limit=500
并指定尺寸会引发错误:
me/photos/uploaded?fields=from,images,comments.picture,likes.picture.type(large)&limit=500
尽管我在文档中没有发现任何明确内容,但是您可以指定的深度似乎有一个限制。(非常简洁,不足为奇)
因此,解决具有依赖项的批处理查询
myphotos => me/photos/uploaded?fields=created_time,name,id,from,comments.summary(1).limit(100),images,likes.summary(1).limit(100)&limit=500
userinfo_photocomments => ?ids={result=myphotos:$.data.*.comments.data.*.from.id}&fields=id,name,updated_time,picture.redirect(0).type(large).height(2000).width(2000)
userinfo_photolikes => ?ids={result=myphotos:$.data.*.likes.data.*.id}&fields=id,name,updated_time,picture.redirect(0).type(large).height(2000).width(2000)
尽管这有效,但我无法在一个或最多2个查询中找到如何做的事实使我很烦,特别是因为最后2个子查询的结果很可能会重叠。
我想找到一种混合jsonpath锚点的方法,这样我就可以结合最后两个查询。问题似乎在于评论者和喜欢者的用户ID在树中的不同深度。
如有任何见解,我将不胜感激。
我认为您应该能够使用两次来自第一个查询的结果,从而导致只有两个查询。
我测试了?ids=
端点是否筛选出重复项user_id
,如下所示:
GET /?ids={user_id1},{user_id2},{user_id1}
结果只能得到两个截然不同的结果user_ids
。
因此,这将在以下批处理查询中产生:
curl \
-F 'access_token={access_token}' \
-F 'batch=[{ "method":"GET","name":"myphotos","relative_url":"me/photos/uploaded?fields=created_time,name,id,from,comments.summary(1).limit(100),images,likes.summary(1).limit(100)&limit=500",},{"method":"GET","relative_url":"?ids={result=myphotos:$.data.*.comments.data.*.from.id},{result=myphotos:$.data.*.likes.data.*.id}&fields=id,name,updated_time,picture.redirect(0).type(large).height(2000).width(2000)"}]' \
https://graph.facebook.com/
只需替换{access_token}
为实际的访问令牌即可对此进行测试。
基本上,我只是将user_id
评论和喜欢的列表串联在一起
GET ?ids={result=myphotos:$.data.*.comments.data.*.from.id},{result=myphotos:$.data.*.likes.data.*.id}&fields=...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句