【发布时间】:2015-09-21 22:31:21
【问题描述】:
我正在尝试将消息发布到 Facebook 页面,但作为页面 - 而不是作为我自己的 Facebook 个人资料。我正在使用第 5 版 Facebook PHP SDK。任何想法如何实现这一目标?我下面的代码可以正常发布到 Facebook 页面,但它会将消息作为我自己的个人资料而不是页面发布。
session_start();
define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/src/facebook-sdk-v5/');
require_once __DIR__ . '/src/facebook-sdk-v5/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'appid',
'app_secret' => 'secretid',
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken)) {
$_SESSION['facebook_access_token'] = (string) $accessToken;
$linkData = [
'link' => 'http://www.example.com',
'message' => 'User provided message',
];
try {
$response = $fb->post('/294673057366719/feed', $linkData, $accessToken);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: '.$e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: '.$e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
echo 'Posted with id: '.$graphNode['id'];
} else {
$permissions = ['publish_pages', 'manage_pages'];
$loginUrl = $helper->getLoginUrl('http://app.co.uk:8888/facebook/', $permissions);
echo '<a href="'.$loginUrl.'">Log in</a>';
}
【问题讨论】:
标签: php facebook facebook-php-sdk