1

在我的一个项目中,有一个用户可以分享一些文章的功能。对于分享文章,我使用了以下代码。

  <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 评论框插件,并从该插件发布了一些评论。

现在,当我向 Graph API 发起查询时,它会为我提供从评论插件发布的所有评论。但不是我从 Facebook Wall 发布的内容。

请建议我如何解决上述问题。

-- 非常感谢您的宝贵时间。

4

2 回答 2

2

你确定这个网站使用的是 Facebook 评论插件吗?您只能使用 comments_fbid 检索那些评论,我猜只有您拥有所需的权限(相同的应用程序访问权限)

更新:

现在,当我向 Graph API 发起查询时,它会为我提供从评论插件发布的所有评论。但不是我从 Facebook Wall 发布的内容。

正如我所说,当您没有 postID 时,要在 Facebook Wall 上检索评论,您必须查询 Facebook 以检索您的提要,然后在收到的帖子数据中搜索以找到包含您的链接的帖子。然后你会得到所有的评论。

尝试在图形资源管理器中使用 request ?fields=feed。您将拥有一个带有提要键的对象,而 feed.data 将包含一个包含所有帖子的数组。对于每个帖子,查看链接属性并找到您的链接。评论属性将包含在此 Facebook 帖子上发表的所有评论。

于 2013-08-21T09:18:36.097 回答
1

评论与 Facebook 图表对象相关联。在上面的示例中,您实际上指的是多个打开的图形对象,这是问题的一部分。

对象#1 是您的网站文章。如果您在 Facebook 调试器 ( https://developers.facebook.com/tools/debug/ ) 中输入您的文章 URL,您将获得有关它的信息,因为 Facebook 已将其缓存到图形存储中。在此页面的底部,您将看到一个名为 Graph API 的字段。提供的 url 中的 ID 是该页面的图形对象 ID。您甚至可以单击该链接来查看该对象的数据。

对象#2-#n 是您的共享。当您的访问者将文章“分享”到他们的时间线时,他们正在为他们的时间线创建“帖子”。这些“帖子”中的每一个都有一个不同且唯一的 Open Graph 对象 ID。然后,评论插件会在该独特帖子上附加一个独特的评论板。

因此,对于您网站上的一篇文章,就评论而言,您将使用文章 url 的开放图形对象 ID 从您的网站页面进行一次对话,然后在用户流上共享的每个帖子都有一个独特的对话。

听起来您希望所有这些合并在一起,因此只有 1 个评论对象。

为了做到这一点,当你打电话给 Facebook 发表评论时,你必须确保你提供了文章对象的 ID。

而不是这个... $facebook->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

希望这可以帮助。

谢谢本

于 2013-11-13T03:37:41.923 回答