我无法制作一个简单的 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 为空的原因。
所以我的问题是:为什么这在本地主机上有效,但在我的网络服务器上无效?我究竟做错了什么?
谢谢!