我正在尝试使用此FQL多查询来获取我的朋友喜欢的页面:
{
"query1": "SELECT uid2 FROM friend WHERE uid1 = me()",
"query2": "SELECT uid, page_id, type FROM page_fan WHERE uid IN (SELECT uid2 FROM #query1)",
"query3": "SELECT page_id, name, categories, type, page_url, pic_big FROM page WHERE page_id IN (SELECT page_id FROM #query2)"
}
查询工作正常并返回结果。但是,对于260人来说,它会返回大约2940页,这比所查询的人的实际数量的总和少。
我认为这可能是一个权限问题,并要求此列表中的某个人删除对朋友的应用程序的“访问喜欢,兴趣......”权限。在下一次运行中,她的页面和喜欢不在返回的JSON上,但页面计数实际上增加了大约10或20条记录。
我在这里做错了吗?我出于性能原因使用multiquery。
使用Graph API资源管理器和PHP SDK都会发生这种情况:
$fql = urlencode($fqlQuery);
$response = $facebook->api("/fql?q={$fql}");
对这个问题的任何想法?
提前致谢:)
答案 0 :(得分:3)
Facebook上还有一项额外的隐私功能,可能会限制您从某些人那里获得的结果。
此设置位于隐私设置中,其名称为“人们如何将您的信息带到他们使用的应用中
它还给出了一个简短的描述 -
可以看到您的信息的人可以在使用应用时随身携带。使用此设置可以控制人们可以随身携带的信息类别。
该设置中的一个选项是"Activities, interests, things I like"
。对于我的个人资料,此选项设置为关闭。因此,无论应用程序从我的朋友获得什么权限,该应用程序将无法看到我的“喜欢”。
我怀疑你的一些(更聪明的)用户是否像我一样禁用了这个设置,这阻止了你的应用程序获取该信息。
顺便说一句,我认为这个设置对于社交网络上的真实隐私至关重要。仅仅因为我的朋友可以看到我喜欢的页面,并不意味着我希望他们使用的任何应用程序也能够看到该信息。