Facebook连接权限PHP SDK

问题描述:

我尝试与Facebook Connect建立连接,治疗进展顺利,我可以检索用户名和ID,但不会考虑以$权限传输的信息。我会忘记一件事吗? 我遵循Facebook开发人员提供的文档。 我用的是最新版本:PHP SDK 5.2Facebook连接权限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; 
     } 

    } 

} 

感谢,

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

你必须定义要检索与该字段中输入您请求,例如/ me?fields = id,姓名,电子邮件,生日而不是/我

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

,试图提高移动网络的性能,节点和V2.4边,您需要明确要求您需要的字段(S)为您的GET请求。例如,GET /v2.4/me/feed默认不再包含喜欢和评论,但GET /v2.4/me/feed?fields=comments,likes将返回数据。有关更多详细信息,请参阅有关如何请求特定字段的文档。

+0

谢谢!我正在恢复除了一个,出生日期之外的所有期望的值,我尝试user_birthday给我一个错误,并且生日ca给我一个基本的表。 **错误user_birthday ** '格拉夫返回错误:(#100)试图在节点类型访问不存在的字段(user_birthday)(用户)' ** **生日' \ APP \控制器\ UsersController .PHP(线148) 对象(脸谱\ GraphNodes \ GraphUser){ \t [保护]项=>数组( \t \t 'ID'=> 'ID_USER_FACEBOOK' \t) } ' 任何想法为什么不出现生日? 谢谢 – Darkh

+0

尝试生日只有 –

+0

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