2015-11-23 62 views
5

這裏是我的代碼:Facebook的PHP SDK - 圖返回了一個錯誤:無效的OAuth訪問令牌

的login.php:

<?PHP 
require_once __DIR__ . '/Facebook/autoload.php'; 

$fb = new Facebook\Facebook([ 
    'app_id' => '', 
    'app_secret' => '', 
    'default_graph_version' => 'v2.2', 
    ]); 

$helper = $fb->getRedirectLoginHelper(); 
$permissions = ['email','public_profile']; // optional 
$loginUrl = $helper->getLoginUrl('http://www.sportsector.bg/login-callback.php', $permissions); 

echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'; 

這裏是我的login-callback.php:

<?PHP 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
session_start(); 
require_once __DIR__ . '/Facebook/autoload.php'; 
$fb = new Facebook\Facebook([ 
    'app_id' => '', 
    'app_secret' => '', 
    'default_graph_version' => 'v2.2', 
    ]); 


try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $fb->get('/me?fields=id,name', '{access-token}'); 
} 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; 
} 

$user = $response->getGraphUser(); 

echo 'Name: ' . $user['name']; 

當我點擊Login with Facebook!鏈接時,我得到重定向到Facebook,我必須點擊繼續。之後,我回到我的網站上收到以下錯誤:

Graph returned an error: Invalid OAuth access token. 

有人可以告訴我哪裏是我的錯誤,我該如何解決這個問題?

回答

6

您沒有檢索到有效的訪問令牌。

變化:

$fb = new Facebook\Facebook([ 
    'app_id' => '', 
    'app_secret' => '', 
    'default_graph_version' => 'v2.2', 
    ]); 


$helper = $fb->getRedirectLoginHelper(); 

try { 
    $accessToken = $helper->getAccessToken(); 
    $response = $fb->get('/me?fields=id,name', $accessToken); 
    .... 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
... 

看一看here

+0

現在我收到以下錯誤,當我回到我的網站:'注意事項:使用未定義的常量的accessToken的 - 假設「的accessToken」在/ var /www/html/sportsector.bg/login-callback.php on line 19 Graph返回了一個錯誤:無效的OAuth訪問令牌。# –

+0

Yepp抱歉,忘記了'$ accessToken'中的'$'。瘋狂編輯。 –

+0

現在我收到以下錯誤:'Facebook SDK返回錯誤:跨站請求僞造驗證失敗。必需的參數「狀態」缺失。「你能給我任何意見嗎? –

相關問題