Вопрос

Я использую Последний 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

Посмотрите, работает ли это

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top