使用 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_rating
和rating_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 页面率和评论