【问题标题】:After moving my facebook php from localhost to web server, it stops working将我的 facebook php 从 localhost 移动到 Web 服务器后,它停止工作
【发布时间】: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


【解决方案1】:

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

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

$facebook = new Facebook($config);

希望这会有所帮助

【讨论】:

  • 谢谢@mrmm,但我已经完成了所有这些。我的应用程序正在运行,它连接到 fb,我得到了用户令牌和一切。问题是在本地主机上开发时所有这些都很好,但是当我将它上传到我的网络服务器并更改我的 facebook 应用程序的域以匹配新域和所有内容时,它停止工作。
  • @PituSeligmann 我也有同样的问题。我需要为这个问题做些什么?。
猜你喜欢
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
相关资源
最近更新 更多