在我的项目中,有一个功能,用户可以共享一些文章。对于分享文章,我使用了以下代码。
<a title="Share this answer on facebook"
onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=
{URL_TO_SHARE}',
'facebook-share-dialog','width=500,height=300');
return false;">
SHARE ON FB
</a>
上面的代码绝对正常,并将我的文章分享到我的墙上。现在我想在上面的共享链接(文章)上发布所有评论。
所以为此,我使用了以下代码(我使用的是facebook-php-sdk):
$facebook->api('/comments?id=' . $url);
//$url is the url of the shared link which is correct
但是上面的api调用返回空数组,即使本文中有注释。
我也尝试过FQL
查询,但这也会返回空数组。
SELECT post_fbid, fromid, object_id, text, time FROM comment
WHERE object_id IN (SELECT comments_fbid FROM link_stat WHERE url = '{MY_URL}')
要进行交叉检查,我去了Explorer并在那里检查过。但即便如此,它也会返回空数组,就好像没有注释一样。
更新
出于测试目的,我在页面中使用了Facebook Comment Box Plugin,并在该插件中发布了一些评论。
现在当我向Graph API发出查询时,它会给我发表评论插件的所有评论。 但不是我从Facebook Wall发布的内容。
请建议我如何解决上述问题。
- 非常感谢你的时间。
答案 0 :(得分:2)
更新:
现在当我向Graph API发出查询时,它会给我发表评论插件的所有评论。但不是我从Facebook Wall发布的内容。
正如我所说,如果您没有postID,要在Facebook Wall上检索评论,您必须查询Facebook以检索您的Feed,然后在收到的帖子数据中搜索以找到包含您的链接的帖子。 然后你会得到所有的评论。
使用请求?fields=feed
尝试图浏览器。您将拥有一个带有提要键的对象,feed.data将包含一个包含所有帖子的数组。对于每个帖子,请查看链接属性并找到您的链接。 comments属性将包含此facebook帖子上的所有评论。
答案 1 :(得分:1)
评论与Facebook图形对象相关联。在上面的示例中,您实际上是指多个打开的图形对象,这是问题的一部分。
对象#1是您的网站文章。如果您在Facebook调试器(https://developers.facebook.com/tools/debug/)中输入文章URL,您将获得有关它的信息,因为Facebook已将其缓存到图形商店中。在此页面的底部,您将看到一个名为Graph API的字段。提供的网址中的ID是该网页的图表对象ID。您甚至可以单击该链接以查看该对象的数据。
对象#2-#n是您的股票。当您的访问者将文章“分享”到他们的时间线时,他们会在他们的时间轴上创建一个“帖子”。每个“帖子”都有一个不同且唯一的开放图形对象ID。然后,评论插件会在该独特帖子中附加一个独特的评论板。
因此,对于您网站上的一篇文章,在评论方面,您将使用文章网址的开放图表对象ID从您的网站页面进行一次对话,然后在用户流上分享每个帖子的唯一对话
听起来你想要将所有这些合并在一起,所以只有一个评论对象。
为了在您拨打Facebook发表评论时这样做,您必须确保提供文章对象的ID。
而不是...... $ facebook-&gt; api('/ comments?id ='。$ url);
尝试POST呼叫: “https://graph.facebook.com/[OPEN-GRAPH-ID-OF-ARTICLE]/comments?message='my message'”
此处概述了此流程:https://developers.facebook.com/docs/reference/api/using-comments/#creating
希望这有帮助。
由于 本