我正在使用图表API创建搜索地点的网站。我从图API中获取了地方详细信息。有没有办法通过图API获得页面评级和评论?
答案 0 :(得分:8)
我遇到了同样的问题,我回答了自己的问题here:
您需要拨打 {page-id} / ratings?field = open_graph_story ,但您需要获取该网页的访问令牌(在图谱API资源管理器中使用/ me / accounts获取)令牌)。您可以在facebook documentation。
中找到更多信息答案 1 :(得分:6)
这是一篇旧帖子,但我想向其他可能正在寻找解决此问题的人提供一些额外的信息。正如Facebook Open Graph documentation 中所述,您肯定需要一个页面访问令牌来获取页面的个人评分/评论。但是,如果您正在寻找总体评分和评论次数,那么您很幸运。只需拨打/{page-id}?fields=overall_star_rating,rating_count
,您就可以访问该数据。
以下是一个示例回复:
{
"overall_star_rating": 4.7,
"rating_count": 31,
"id": "{page-id}"
}
答案 2 :(得分:0)
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' );