Facebook Graph API是Facebook提供的编程接口,允许开发者以编程方式与Facebook平台交互。通过API可以发布内容到页面、获取用户数据等。
pages_manage_posts
- 管理页面帖子pages_read_engagement
- 读取页面互动数据pages_show_list
- 查看用户管理的页面列表composer require facebook/graph-sdk
<?php
require_once __DIR__ . '/vendor/autoload.php'; // 引入自动加载文件
$fb = new \Facebook\Facebook([
'app_id' => '{app-id}',
'app_secret' => '{app-secret}',
'default_graph_version' => 'v12.0',
]);
// 长期访问令牌(从开发者工具获取)
$accessToken = '{long-lived-access-token}';
try {
// 获取用户管理的页面
$response = $fb->get('/me/accounts', $accessToken);
$pages = $response->getGraphEdge();
foreach ($pages as $page) {
$pageAccessToken = $page['access_token'];
$pageId = $page['id'];
// 发布到页面
$postData = [
'message' => '这是通过API发布的测试消息',
'link' => 'https://example.com',
];
$response = $fb->post("/$pageId/feed", $postData, $pageAccessToken);
$graphNode = $response->getGraphNode();
echo '发布成功,帖子ID: ' . $graphNode['id'];
}
} catch(\Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph API 错误: ' . $e->getMessage();
} catch(\Facebook\Exceptions\FacebookSDKException $e) {
echo 'SDK 错误: ' . $e->getMessage();
}
?>
错误: (#200) Requires pages_manage_posts permission
原因: 应用未获得足够权限或用户未授权
解决:
错误: Invalid OAuth access token
原因: 访问令牌已过期
解决:
原因: 可能违反Facebook社区准则 解决:
通过以上方法,您可以可靠地以管理员身份通过PHP SDK发布内容到Facebook页面。
没有搜到相关的文章