0

我无法制作一个简单的 FB 应用程序。

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

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

我开始调查并追踪我认为可能是错误的地方。在 base_facebook.php 上有这个getUserFromAvailableData()方法,其中包含以下代码部分:(回声是我的顺便说一句)

$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 为空的原因。

所以我的问题是:为什么这在本地主机上有效,但在我的网络服务器上无效?我究竟做错了什么?

谢谢!

4

1 回答 1

0

如果您想在真实服务器中使用您的代码,您需要使用您的域名制作一个 Facebook 应用程序,您将使用它来托管 tour php 脚本并放置您的 Application Id 和您的 App Secret :

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

$facebook = new Facebook($config);

希望这会有所帮助

于 2013-09-17T09:15:17.103 回答