【发布时间】:2013-09-21 07:24:56
【问题描述】:
我在制作简单的 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 为空的原因。
所以我的问题是:为什么这在 localhost 上有效,但在我的网络服务器上无效?我做错了什么?
谢谢!
【问题讨论】:
-
我认为您已将配置设置为本地而不是在您的直播阶段。
-
@DrixsonOseña 你是什么意思? php 目前在开发服务器上,但我还不能让它工作。在本地主机上它完美无缺。
-
不是 PHP 配置,我还不熟悉 API,但请仔细检查重要配置,尤其是那些您在系统中使用的路径的配置。如果这需要您的令牌工作
标签: php facebook facebook-graph-api facebook-php-sdk access-token