使用 Graph api 获取 Facebook 页面率和评论

Posted

技术标签:

【中文标题】使用 Graph api 获取 Facebook 页面率和评论【英文标题】:Get facebook page rate and reviews using Graph api 【发布时间】:2014-01-05 07:26:03 【问题描述】:

我正在创建网站以使用图形 API 搜索地点。我从图形 API 获得了地点的详细信息。有什么方法可以通过图形 API 获取页面评分和地点的评论?

【问题讨论】:

我刚刚在***.com/questions/17315839/… 中回答了这个问题。希望这会有所帮助。 【参考方案1】:

我有同样的问题,我回答了我自己的问题here:

您需要调用 page-id/ratings?field=open_graph_story,但您需要页面的访问令牌(使用 Graph API Explorer 中的 /me/accounts 来获取令牌)。您可以在facebook documentation 中找到更多信息。

【讨论】:

谢谢萨沙。提醒我我需要使用页面令牌而不是主访问令牌。 Sascha,我正在尝试您的答案,但它对我不起作用。我的应用程序具有 manage_pages 权限。你能帮忙吗?我收到错误“此调用需要页面访问令牌。”并且代码是 getAccessToken(); $facebook->setAccessToken($access_token); print_r($facebook);试试 $ret = $facebook->api("/1633988186866636/ratings?field=open_graph_story", 'GET'); print_r($ret); catch(Exception $e) echo $e->getMessage(); 【参考方案2】:

这是一篇旧帖子,但我想向可能仍在寻找解决此问题的其他人提供一些额外的信息。正如Facebook Open Graph documentation 中所述,您肯定需要一个页面访问令牌来获取页面的个人评分/评论。但是,如果您正在寻找 总体评分评论计数,那么您很幸运。只需拨打/page-id?fields=overall_star_rating,rating_count,您就可以访问该数据。

这是一个示例响应:


    "overall_star_rating": 4.7,
    "rating_count": 31,
    "id": "page-id"

【讨论】:

嗨大卫,你能详细说明一下吗?例如。我将如何使用 php 获取这两个字段,我尝试了以下代码,但它不起作用(我有点新手): $raw = file_get_contents('facebook.com/…); $obj = json_decode($raw); echo $obj->overall_star_rating; 嗨,David,我需要一些有关 facebook API 的帮助。我们可以访问任何公共页面的评级吗?我知道要访问我们需要页面 ID 和页面访问令牌的评级。假设我有页面 id(Facebook 的一些随机公共页面),我可以在 Graph API Explorer 中使用 /me/accounts 生成访问令牌吗?然后我可以获取该页面的评分吗?请帮忙。【参考方案3】:

David R. Myers II 的答案正是我所需要的。谢谢! 您可以获取任意页面的overall_star_ratingrating_count 字段。

您需要提交您的应用以供 Facebook 审核并申请使用Page Public Content Access 功能。

对于开发,当您的 Facebook 应用状态为 In development 时,您将自动有权访问您拥有的页面的公共内容。在上线之前,请向 Facebook 申请审核,以便您可以访问其他页面。

列出您拥有的页面:https://www.facebook.com/bookmarks/pages?ref=u2u

获取评分的示例代码:

// Assuming the Facebook PHP SDK was installed with Composer.
require_once __DIR__ . '/vendor/autoload.php'; // Change path as needed.

$fb = new \Facebook\Facebook([
    'app_id' => 'app-id',
    'app_secret' => 'app-secret',
    'default_graph_version' => 'v3.2',
    'default_access_token' => 'access-token',
]);

try 
    // Get the \Facebook\GraphNodes\GraphPage object for the needed page.
    $response = $fb->get('/page-id?fields=overall_star_rating,rating_count');
 catch(\Facebook\Exceptions\FacebookResponseException $e) 
    // When Graph returns an error
    echo 'Graph returned an error: ' . $e->getMessage();
    exit;
 catch(\Facebook\Exceptions\FacebookSDKException $e) 
    // When validation fails or other local issues
    echo 'Facebook SDK returned an error: ' . $e->getMessage();
    exit;


// Get the response typed as a GraphPage.
$page = $response->getGraphPage();

// Get the needed field values.
$facebook_rating_count = $page->getField( 'rating_count' );
$facebook_overall_star_rating = $page->getField( 'overall_star_rating' );

【讨论】:

以上是关于使用 Graph api 获取 Facebook 页面率和评论的主要内容,如果未能解决你的问题,请参考以下文章

使用facebook graph api获取Instagram自己/自我饲料

如何使用 Graph API 获取家乡的 facebook 好友列表?

如何使用 Facebook Graph API 获取群组视频列表?

使用 Graph api 获取 Facebook 页面率和评论

如何使用 Graph Api 在 facebook 新闻提要中获取“新添加的照片到相册”

Facebook Graph API 获取应用用户的朋友