4

我正在尝试使用此 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 条记录。

我在这里做错了吗?出于性能原因,我正在使用多查询。

使用 Graph API 资源管理器和 PHP SDK 都会发生这种情况:

$fql = urlencode($fqlQuery);
$response = $facebook->api("/fql?q={$fql}");

对这个问题有什么想法吗?

提前致谢 :)

4

1 回答 1

3

Facebook 上有一项额外的隐私功能可能会限制您从某些人那里收到的结果。

该设置位于隐私设置中,称为 - 人们如何将您的信息带到他们使用的应用程序中

它还给出了一个简短的描述 -

可以看到您的信息的人可以在使用应用程序时随身携带。使用此设置来控制人们可以随身携带的信息类别。

该设置中的选项之一是"Activities, interests, things I like". 对于我的个人资料,此选项设置为关闭。因此,无论应用程序从我的朋友那里获得什么权限,该应用程序都无法看到我的“喜欢”。

我怀疑您的一些(更聪明的)用户像我一样禁用了此设置,这会阻止您的应用程序获取该信息。

顺便说一句,我认为此设置对于社交网络上的真正隐私至关重要。仅仅因为我的朋友可以看到我喜欢的页面,并不意味着我希望他们使用的任何应用程序也能够看到该信息。

于 2012-07-07T11:59:06.543 回答