2011-08-25 65 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登录按钮,因此用户不会尝试注册并获取错误。 –

相关问题