将我的facebook php从localhost移动到web服务器后,它停止工作

时间:2013-09-17 01:38:47

标签: php facebook facebook-graph-api facebook-php-sdk access-token

我在创建一个简单的FB应用程序时遇到了麻烦。

我是在localhost上开发的,它运行得很好。整个想法是有一个桌面应用程序,它启动带有返回URL的Facebook登录页面。一旦用户成功登录,他就会被发送到该返回URL以显示“感谢记录”的消息。

当我在localhost上尝试时(通过将我的应用程序域和Facebook上的站点URL设置为localhost),它可以正常运行。但是现在我把php移到了web服务器上,我的$ user var永远不会被填充。 (是的,我更新了app域并在facebook上返回url指向我的域名。)

我开始调查并追踪我认为可能是错误的内容。在base_facebook.php上有这个 getUserFromAvailableData()方法,下面是代码部分:(回声是我的btw)

$access_token = $this->getAccessToken();

echo "Access Token: ".$access_token."<br/>";
echo $this->getApplicationAccessToken()."<br/>";

if ($access_token && $access_token != $this->getApplicationAccessToken() && !($user && $persisted_access_token == $access_token)) {

  echo "This doesn't get printed at all.";
  $user = $this->getUserFromAccessToken();
  if ($user) {
        $this->setPersistentData('user_id', $user);
  } else {
        $this->clearAllPersistentData();
  }
}

return $user;

正如你所看到的,有一个永远不会被打印的回声,我设法发现getAccessToken和getApplicationAccessToken返回完全相同的字符串,这就是我的$ user变空的原因。

所以我的问题是:为什么这可以在localhost上工作,但不能在我的网络服务器上工作?我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想在真实服务器中使用您的代码,您需要使用您的域名创建一个Facebook应用程序,您将使用它来托管浏览PHP脚本并将您的应用程序ID和您的应用程序密码放入:

$config = array();
$config['appId'] = 'YOUR_APP_ID';
$config['secret'] = 'YOUR_APP_SECRET';

$facebook = new Facebook($config);

希望这会有所帮助