Facebook graph api jsonpath:混合两条路径
我正在使用graph api查询facebook,以获取对发布的图片发表评论或喜欢该/me用户发布的图片的用户的全尺寸个人资料图片。 我试图:Facebook graph api jsonpath:混合两条路径,facebook-graph-api,jsonpath,Facebook Graph Api,Jsonpath,我正在使用graph api查询facebook,以获取对发布的图片发表评论或喜欢该/me用户发布的图片的用户的全尺寸个人资料图片。 我试图: 在一个查询中完成,我在从足够深的地方获取数据时遇到困难 或者最小化子查询的数量 在一个查询中:这不起作用(它不提供评论用户的详细信息): 指定尺寸会引发错误: me/photos/uploaded?fields=from,images,comments.picture,likes.picture.type(large)&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在树的不同深度
如果您有任何见解,我将不胜感激。我认为您应该能够使用第一次查询的结果两次,结果只会产生两次查询 我测试了
?id=
端点,如果它过滤掉重复的用户id
,如下所示:
GET /?ids={user_id1},{user_id2},{user_id1}
这只会导致返回两个不同的用户id
因此,这将在以下批处理查询中生成:
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\u token}
替换为实际的访问令牌即可进行测试
基本上,我只是将user\u id
列表连接起来,作为评论和喜欢的内容
GET ?ids={result=myphotos:$.data.*.comments.data.*.from.id},{result=myphotos:$.data.*.likes.data.*.id}&fields=...
这确实是一种非常实用的方法。将其分解为两个查询。好主意!很高兴它对你有用。还有一件好事是FB使
用户ID
不同,你不必自己过滤这些ID。还有一个问题:如果第一次查询中提交了很多图片,那么将进行分页。正因为如此,ID将在连接的结果页中重叠。。。。。。这是我最后必须通过编程解决的问题。
GET ?ids={result=myphotos:$.data.*.comments.data.*.from.id},{result=myphotos:$.data.*.likes.data.*.id}&fields=...