我可以使用 facebook sdk 获得评论和喜欢的列表。但是我找不到一种方法来获取所有共享帖子的用户的列表(我也尝试过 fql)。
这是我用来获得喜欢的代码:
$facebook = new Facebook($config);
$likes = $facebook->api('/THE_POST_ID/likes',
array('limit'=>9999999999));
我可以使用 facebook sdk 获得评论和喜欢的列表。但是我找不到一种方法来获取所有共享帖子的用户的列表(我也尝试过 fql)。
这是我用来获得喜欢的代码:
$facebook = new Facebook($config);
$likes = $facebook->api('/THE_POST_ID/likes',
array('limit'=>9999999999));
在撰写本文时,Facebook Graph API 允许您获取帖子的分享数。使用您的代码,它将如下所示(请不要说我在这里没有进行任何异常处理以保持示例简单):
$facebook = new Facebook($config);
// fetch the post data.
$post = $facebook->api('/THE_POST_ID/');
// fetch the count of shares.
$sharesCount = $post["shares"]["count"];
使用Graph API Explorer,您可以轻松地看到这一点。
不幸的是,API 没有像“喜欢”和“评论”那样提供“分享”连接。有关详细信息,请参阅Post - Facebook Graph API 文档。
另一方面,检索分享特定帖子的用户列表(仅限朋友和公开分享的人)有一个肮脏的技巧。该解决方案在另一个线程上进行了解释:在 facebook 上共享的人员列表。但是,我永远不会建议使用该解决方案。
是的,您可以获得 Facebook 帖子的所有共享列表。
通过访问:
https://graph.facebook.com/{POST_ID}/sharedposts?access_token={ACCESS_TOKEN}
请参阅: https ://developers.facebook.com/docs/graph-api/reference/v2.5/post
我知道您希望通过 post_id 获取共享,但是您可以满足于通过 page_id 而不是 post_id 查找共享吗?
如果可以,那么您可以使用以下 FQL 来获取您要查找的数据。
SELECT via_id, created_time, owner_comment
FROM link
WHERE owner = me()
然后,您可以将 via_id 与帖子作者(页面 ID)进行比较,以确定此共享是否来自相关帖子作者。
不幸的是,数据返回似乎存在一个错误,其中一些 via_id 返回为 0。Facebook 有一张票,在本文发布时,该票已以中等优先级开放三周。我不知道这个问题是特定于我的应用程序还是影响到每个人,但该查询可能会为您提供所需的内容。