1

Я пытаюсь установить соединение с Facebook Connect, лечение идет хорошо, я могу получить имя пользователя и идентификатор, но информация, передаваемая в $ permissions, не учитывается. Разве я бы забыл? Я следил за документами, доступными для разработчиков Facebook. Я использую последнюю версию: PHP SDK 5.2Facebook connect permissions PHP SDK

public function facebook() { 
    session_start(); 
    require '../Vendor/autoload.php'; 
    $fb = new Facebook\Facebook([ 
     'app_id' => 'ID_APP', 
     'app_secret' => 'SECRET_APP', 
     'default_graph_version' => 'v2.5', 
    ]); 
    $helper = $fb->getRedirectLoginHelper(); 
    $permissions = ['email', 'user_location','user_birthday']; // optional 
    $loginUrl = $helper->getLoginUrl('http://localhost/Weade/connexion/check_facebook', $permissions); 

    $this->redirect($loginUrl); 


} 

 

public function check_facebook() { 
    session_start(); 
    require '../Vendor/autoload.php'; 
    $fb = new Facebook\Facebook([ 
     'app_id' => 'APP_ID', 
     'app_secret' => 'APP_SECRET', 
     'default_graph_version' => 'v2.5', 
    ]); 
    $helper = $fb->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; 
    } 

    if (isset($accessToken)) { 
     // Logged in! 
     $_SESSION['facebook_access_token'] = (string) $accessToken; 

     // Now you can redirect to another page and use the 
     // access token from $_SESSION['facebook_access_token'] 
    } 

    if($this->Session->read('facebook_access_token')) { 
     $fb->setDefaultAccessToken($this->Session->read('facebook_access_token')); 

     try { 
      $response = $fb->get('/me'); 
      $userNode = $response->getGraphUser(); 
      debug($userNode); 


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

    } 

} 

Спасибо,

ответ

0
$response = $fb->get('/me?fields=emai,user_location,user_birthday'); 

Вы должны определить, какие поля вы хотите получить с вашей запрос, например/me? fields = id, имя, адрес электронной почты, день рождения, а не только/me

См https://developers.facebook.com/docs/apps/changelog#v2_4

Чтобы попытаться улучшить производительность мобильных сетей, узлы и ребра в v2.4 требуют, чтобы вы явно запросить поле (ы) вам нужно для ваших запросов GET. Например, GET /v2.4/me/feed больше не включает в себя предпочтения и комментарии по умолчанию, но GET /v2.4/me/feed?fields=comments-likes вернет данные. Для получения дополнительной информации см. Документы о том, как запрашивать определенные поля.

+0

Спасибо! Я восстанавливаю все желаемые значения, кроме одного, дату рождения, я пытаюсь user_birthday возвращает мне ошибку и день рождения. Отправьте мне базовую таблицу. ** user_birthday Ошибка ** 'Graph возвратил ошибку: (# 100) Пробовал доступа несуществующее поле (user_birthday) от типа узла (User)' ** День рождения ** '\ приложение \ Controller \ UsersController .php (строка 148) объект (Facebook \ GraphNodes \ GraphUser) { \t [защищен] элементов => массив ( \t \t 'ID' => 'ID_USER_FACEBOOK' \t) } ' Любая идея, почему день рождения не появляется? спасибо – Darkh

+0

Попробуйте день рождения только –

+0

https://developers.facebook.com/docs/graph-api/reference/user –

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