从Facebook Graph API获取访问令牌


Getting an access token from the Facebook Graph API

我正试图使用facebook图形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;

有什么明显的我做错了吗?

这是我在Laravel 4应用程序中用来连接的。基本上,当用户点击"登录"按钮时,1-使用app_id、app_secret和default_graph_version创建Facebook实例。2-获取一个redirectLoginHelper对象以获取一个loginUrl,其中包含当您调用$helper->getLoginUrl时facebook将提供的代码($redirectUrl,(array($permissionsNeeded(3-重定向到该url4-创建facebook实例并再次执行步骤1和2的getRedirectLoginHelper5-检查您是否在帮助返回的url中收到"code"参数6-获取访问令牌:$accessToken=$helper->getAccessToken((

在我提供的代码中,我在一个方法中完成了所有这些步骤。我检查请求中是否有代码参数,如果没有,我请求它并重定向。下一次代码运行时,当我检查代码是否存在时,它会继续到下一步

$fb = new Facebook([
    'app_id' => 'facebook_app_id',
    'app_secret' => 'facebook_app_secret',
    'default_graph_version' => 'v2.5',
]);
$helper = $fb->getRedirectLoginHelper();
if(Input::get('code') == '') {
    $permissions = ['manage_pages, publish_actions'];
    $loginUrl = $helper->getLoginUrl('http://yoururl.dev/uri', $permissions);
    return Redirect::to($loginUrl);
}
try {
    $accessToken = $helper->getAccessToken();
} catch(Facebook'Exceptions'FacebookSDKException $e) {
    //Handle error
}

在这种情况下,登录按钮转到www.domain.app/connect,重定向LoginHelper返回的URL是相同的,但代码参数为:www.domain.app.connect?代码=ntad341251