Facebook Graph API是Facebook提供的RESTful API,允许开发者读取和写入Facebook数据。total_count
通常是指某个资源(如评论、点赞等)的总数统计。
composer require facebook/graph-sdk
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Facebook\Facebook;
$fb = new Facebook([
'app_id' => '{your-app-id}',
'app_secret' => '{your-app-secret}',
'default_graph_version' => 'v12.0',
]);
try {
// 获取页面访问令牌
$response = $fb->get('/me/accounts', '{user-access-token}');
$pages = $response->getGraphEdge();
foreach ($pages as $page) {
$pageAccessToken = $page->getField('access_token');
$pageId = $page->getField('id');
// 获取页面粉丝总数
$response = $fb->get("/$pageId?fields=fan_count", $pageAccessToken);
$pageData = $response->getGraphNode();
$totalFans = $pageData->getField('fan_count');
echo "Page ID: $pageId, Total Fans: $totalFans\n";
}
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
}
根据不同的需求,可以获取不同类型的总数统计:
// 获取页面帖子的评论总数
$response = $fb->get("/{post-id}?fields=comments.summary(true)", $accessToken);
$comments = $response->getGraphNode();
$totalComments = $comments['comments']['summary']['total_count'];
// 获取页面帖子的点赞总数
$response = $fb->get("/{post-id}?fields=likes.summary(true)", $accessToken);
$likes = $response->getGraphNode();
$totalLikes = $likes['likes']['summary']['total_count'];
// 获取页面帖子的分享总数
$response = $fb->get("/{post-id}?fields=shares", $accessToken);
$shares = $response->getGraphNode();
$totalShares = $shares['shares']['count'];
错误: "(#200) Requires extended permission"
解决方案: 确保请求了正确的权限。对于页面数据,通常需要pages_show_list
和pages_read_engagement
权限。
错误: "(#190) The access token has expired"
解决方案: 使用长期令牌或实现令牌刷新机制。
错误: "(#4) Application request limit reached"
解决方案: 实现适当的请求节流和错误重试机制。
通过上述方法和代码示例,您可以有效地使用PHP和Facebook Graph API获取页面和各种交互的总数统计。