【发布时间】:2016-03-09 15:40:59
【问题描述】:
我正在尝试使用 facebook graph api 在他们的网站上显示运动队的 facebook 状态更新,但似乎无法获得有效的访问令牌。
这是我的代码。
require_once APPPATH.'/third_party/facebook-php-sdk-v4/src/Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '123123123123',
'app_secret' => 'fghdfghtyjdfghdghjfghjfghj',
'default_graph_version' => 'v2.5'
]);
$fb->setDefaultAccessToken('123123123123|dfhjfgytdfghdfhgdsfjd');
$helper = $fb->getCanvasHelper();
try {
$accessToken = $helper->getAccessToken();
} 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;
}
if (isset($accessToken)) {
// Logged in.
} else {
echo 'access token not set - THIS IS WHERE I ALWAYS SEEM TO END UP';
}
exit;
有什么明显的我做错了吗?
【问题讨论】:
-
你是先按权限获取代码吗?类似于: $permissions = ['manage_pages, publish_actions']; $loginUrl = $helper->getLoginUrl(URL::to('/your-redirect-url'), $permissions);
-
可能不会...我使用的所有代码都显示在这里...
-
如果页面是公开的,那么您可以使用您的应用访问令牌来请求数据。否则,您将需要获取页面访问令牌或能够查看页面的用户的用户访问令牌。更多关于不同种类的令牌以及如何获得它们:developers.facebook.com/docs/facebook-login/access-tokens
-
顺便说一句,在这里尝试使用 canvasHelper 没有任何意义,如果我理解正确的话,您甚至都没有在 on 画布上,但该应用程序位于外部网站上.
-
@CBroe 如果我说实话,我对我必须做的事情的了解有限(好像这还不是很明显),所以我只是在尝试一切都在我得到一些结果之前!不过,我会查看您建议的链接。谢谢
标签: php facebook facebook-graph-api facebook-php-sdk facebook-sdk-4.0