Авторизация приложения с PHP SDK
-
25-10-2019 - |
Вопрос
Я использую Последний Facebook PHP SDK и хочу просто получить доступ к пользовательским данным:
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'yyy',
'cookie' => true
));
$user = $facebook->getUser();
if ($user) { // Checks if there is already a logged in user
try {
// Proceed knowing you have a logged in user who's already authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
else {
//Ask for bare minimum login
$login_url = $facebook->getLoginUrl();
header("Location: ".$login_url);
}
Моя проблема в том, что $user
FB зарегистрирован, но $facebook->api('/me')
Не только терпит неудачу, но и не получаю диалоговое окно авторизации приложения. Что я делаю не так?
Решение
В конце концов нашел мою ошибку, так что для записи:
$facebook = new Facebook(array(
'appId' => 'xxxx',
'secret' => 'yyyyy',
'cookie' => true
));
$user = $facebook->getUser();
if ($user) { // Checks if there is already a logged in user
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
// Will throw the very first time as the token is not valid
error_log($e);
$user = null;
}
}
// $user is null : $user is either not logged in or the token is not valid
if(!$user) { //Ask for bare minimum login
$login_url = $facebook->getLoginUrl();
header("Location: ".$login_url);
}
Другие советы
Попробуйте демонстрационный скрипт FB по адресу: https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php
Посмотрите, работает ли это
Не связан с StackOverflow