2011-08-25 59 views
0

我有一個應用程序,Facebook登錄在昨天工作的很好。我切換到AWS EC2,爲今天的一些容量規劃獲得更大的服務器。getUser()現在只返回0;昨天工作嗎?

不幸的是,Facebook登錄不再有效。特別是,在從JavaScript授權中獲取access_token之後,getUser()調用僅返回0.代碼如下。

由於服務器是唯一已經改變(和IP)有一些配置與我的服務器有關,我錯過/不知道?

if(isset($_GET["access_token"])) { 
    $access_token = $_GET["access_token"]; 
    $facebook = new Facebook(array(
     'appId' => FACEBOOK_APP_ID, 
     'secret' => FACEBOOK_SECRET, 
    )); 
    $facebook->setAccessToken($access_token); 
    $user = $facebook->getUser(); 
    if($user) { 
     try { 
      $user_profile = $facebook->api('/me'); 

      $user_name = $user_profile["name"]; 
      $user_email = $user_profile["email"]; 
      $fb_uid = $user_profile["id"]; 
      $fb_access_token = $access_token; 

     } catch (FacebookApiException $e) { 
      $status_header = 'HTTP/1.1 500 Internal Server Error'; 
      header($status_header); 
      header('Content-type: application/json'); 

      echo json_encode(array('message' => 'Facebook Exception')); 
      exit; 
     } 
    } else { 
     $status_header = 'HTTP/1.1 500 Internal Server Error'; 
     header($status_header); 
     header('Content-type: application/json'); 

     echo json_encode(array('message' => 'Facebook user does not exist', 'access_token' => $access_token, 'user' => $user, 'fb' => $facebook)); 
     exit; 
    } 

} 
+0

嘗試在另一個網頁瀏覽器。也許這是緩存或cookie問題? –

+0

嘗試過三種不同的瀏覽器 –

+0

您是否使用相同的域名? Facebook應用程序僅限於您在設置中提供的域。 –

回答

0

兩種可能的想法:

  1. 您正在使用的系統上的捲曲庫工作不正常。嘗試使用散佈在FB網站上的一些示例來從shell中調用。

  2. 我曾經移動應用程序到不同的服務器,並有FB API調用莫名其妙地無法正常工作 - 在確切相同的代碼,一個rsync的後 - 儘管更新新的服務器IP地址是在我們的白名單。我推測Facebook開發者App白名單更新功能被破壞,或者IP被永久禁止使用Facebook的所有API。如果所有其他操作都失敗,請嘗試在不同的可用區域中移動到不同的EC2實例,以查看它是否在其中運行。

p.s.當時,我通過電子郵件發送Facebook的「與我聯繫,如果您有任何問題」開發者代表檢查IP更新是否可能被破壞,但當然,我沒有得到有用的團隊在那裏的迴應。

+1

謝謝,這讓我深入Curl圖書館。原來,這是CA Certs的路徑!現在我修改了base_facebook.php來捕獲makeRequest()函數中的Curl錯誤代碼77。 –

0

驗證FACEBOOK_APP_ID和FACEBOOK_SECRET值是正確的和屬於該URL您正在訪問的設置爲網站的網址和網站域名應用程序設置頁面上的網站。

否則驗證PHP SDK版本是相同的,PHP版本是相同的。這可能有助於縮小問題範圍。

+0

我做到了(三重檢查),一切都準確無誤。 –

+0

該網站的網址是什麼? – bkaid

+0

http://www.edition01.com/。我現在已經通過CSS隱藏了FB登錄按鈕,因此用戶不會嘗試註冊並獲取錯誤。 –

相關問題