【发布时间】:2014-01-05 07:26:03
【问题描述】:
我正在创建网站以使用图形 API 搜索地点。我从图形 API 获得了地点的详细信息。有什么方法可以通过图形 API 获取页面评分和地点的评论?
【问题讨论】:
-
我刚刚在stackoverflow.com/questions/17315839/… 中回答了这个问题。希望这会有所帮助。
标签: facebook facebook-graph-api facebook-page
我正在创建网站以使用图形 API 搜索地点。我从图形 API 获得了地点的详细信息。有什么方法可以通过图形 API 获取页面评分和地点的评论?
【问题讨论】:
标签: facebook facebook-graph-api facebook-page
我有同样的问题,我回答了我自己的问题here:
您需要调用 {page-id}/ratings?field=open_graph_story,但您需要页面的访问令牌(使用 Graph API Explorer 中的 /me/accounts 来获取令牌)。您可以在facebook documentation 中找到更多信息。
【讨论】:
这是一篇旧帖子,但我想向可能仍在寻找解决此问题的其他人提供一些额外的信息。正如Facebook Open Graph documentation 中所述,您肯定需要一个页面访问令牌来获取页面的个人评分/评论。但是,如果您正在寻找 总体评分 和 评论计数,那么您很幸运。只需拨打/{page-id}?fields=overall_star_rating,rating_count,您就可以访问该数据。
这是一个示例响应:
{
"overall_star_rating": 4.7,
"rating_count": 31,
"id": "{page-id}"
}
【讨论】:
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' );
【讨论】: