2013-03-09 117 views
2

我想在Yii框架中使用Facebook連接。

問題是我想訪問用戶的電子郵件地址和 $ facebook-> api('/ me')正在返回NULL。

如何解決該問題?

這裏是我的代碼:

<?php 
Yii::import("ext.fconnect.*"); 
     $app_id = "xxx"; 
     $app_secret = "xxxx"; 
     Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 

     $facebook = new Facebook(array(
      'appId' => $app_id, 
      'secret' => $app_secret, 
     )); 



     $user = $facebook->getUser(); 
     if ($user) { 

      try {     
       $user_profile = $facebook->api('/me'); 
      } catch (FacebookApiException $e) { 
       $user_profile = $e; 
       $user = NULL; 
      } 

     } 

     if ($user) { 

      $d["logoutUrl"] = $facebook->getLogoutUrl(array(
       'fblogout' => 'true',   
       'next' => $this->createAbsoluteUrl("main/signout") 
      )); 



      $d["user_info"] = $facebook->api('/' . $user); 

     } else { 

      $d["loginUrl"] = $facebook->getLoginUrl(array(
       'scope' => 'email, read_stream, publish_stream, user_birthday, user_location, user_work_history, user_hometown, user_photos', 
       'redirect_uri' => $this->request->hostInfo . $this->request->url, 
      )); 
     } 
     $d["user"] = $user; 
     $d["userprofile"] = $user_profile; 
+0

似乎'$ facebook-> getUser()'由於最新的SDK更改而出現問題。它總是返回0. – deadlock 2013-03-09 12:52:50

+0

偉大的分機存在https://github.com/Nodge/yii-eauth。我曾經在一個項目中驗證用戶身份。 – 2013-03-09 17:37:25

+0

我刪除了$ facebook-> api(「/ me」);從try catch塊開始,一切開始爲我工作。 :) – 2013-03-10 08:06:52

回答

2

行:

$d["user_info"] = $facebook->api('/' . $user); 

看來我錯了。我不知道什麼數據類型$user會是;我只是使用$facebook->api('/me');,那會給你當前登錄和認證用戶的配置文件。