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.

Может кто-нибудь сказать мне, где моя ошибка, и как я могу это исправить?

1 ответ

Вы не извлекли действительный токен доступа.

Изменить:

$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) { 
...

Посмотрите здесь

licensed under cc by-sa 3.0 with attribution.