2016-03-01 5 views
0

Я реализует новое приложение, которое использует Facebook логин:
На developers.facebook.com я поставил настройки:
App Домены: (пустые)
URL сайта: http://localhost/site/
клиента OAuth Вход: Да
Web OAuth Логин: Да
Force Web OAuth Reauthentication: нет
Встроенный браузер OAuth Логин: нет
Действительно OAuth не перенаправлять URIs: http://localhost/site/externallogin/Facebook ошибка API redirect_ui

И в моем приложении ссылка Логина:

$facebook = new Facebook\Facebook([ 
    'app_id' => FB_APP_ID, 
    'app_secret' => FB_APP_SECRET, 
    'default_graph_version' => 'v2.5', 
]); 

$helper = $facebook->getRedirectLoginHelper(); 
$permissions = ['email', 'public_profile', 'user_friends']; 
$loginUrl = $helper->getLoginUrl("http://localhost/site/externallogin", $permissions); 
echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a><hr>'; 

И моя страница externallogin:

$helper = $facebook->getRedirectLoginHelper(); 

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; 
} 

Но когда я перенаправлять я получил следующее сообщение об ошибке:

Graph returned an error: Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request

Я ve попытался изменить default_graph_version на 2.2, измените URI перенаправления Valid OAuth и возвращаемый url для всех видов, но ничего, то же самое.
Я прочитал все, что с этим связано, и пробовал весь подход, но все тот же.
Я не знаю, что может вызвать эту ошибку.

Мой вопрос: Как я могу исправить эту ошибку? Правильно достаю токен доступа. print 1 print 2

+1

Stop случайно верчение вокруг делать бесполезные вещи, как изменение 'default_graph_version' настройки. Если вы перейдете на 'http: // localhost/site/externallogin', ваш сервер автоматически добавит'/'в конец? – ceejayoz

+0

Да, это добавляет/в конце, когда я набираю http: // localhost/site/externallogin, он вернет http: // localhost/site/externallogin/ – BrunoRamalho

+0

Это ваша проблема. См. Мой ответ. – ceejayoz

ответ

0

страница $helper->getAccessToken() работает на должно быть точным же URL вы предоставляете $helper->getLoginUrl(). Как вы указали http://localhost/site/externallogin перенаправляет http://localhost/site/externallogin/ на вашем веб-сервере, добавьте / когда вы делаете $loginUrl:

$loginUrl = $helper->getLoginUrl("http://localhost/site/externallogin/", $permissions); 
+0

Я переместил весь код getAccessToken с тем же URL-адресом, что и getLoginUrl. И я добавил/в конец: $ loginUrl = $ helper-> getLoginUrl ("http: // localhost/site/login /", $ permissions); Но у меня такая же ошибка – BrunoRamalho

+0

@BrunoRamalho Вам не нужно перемещать код. – ceejayoz

+0

Посмотрите мои изменения, у меня такая же ошибка – BrunoRamalho

Смежные вопросы