2

我正在使用 Heroku 在 Facebook 上制作一个 php 应用程序。我想让 Heroku URL 成为我的应用程序中的 Canvas URL。但是,当我将 URL 放在基本页面中,然后尝试通过转到http://apps.facebook.com/status_related_test打开我的应用程序时,画布显示“无效凭据”并重​​定向到应用程序的 URL,https ://young-warrior-3712.herokuapp.com

任何想法我可能做错了什么或如何解决这个问题?

ETA:
当我直接进入应用程序链接(https://young-warrior-3712.herokuapp.com)时,我可以成功登录。只有当我尝试访问 Facebook 应用程序页面时,它才不起作用。

4

4 回答 4

4

norabora,我在其他帖子中得到了解决方案,经过长时间的努力,我终于成功了!这是我回答的帖子的链接: 回答在 FB 应用画布中重定向

希望你会发现它有用...祝你好运!

于 2011-11-03T07:42:11.223 回答
0

自己尝试过,index.php 在页面加载时无法在第 35 行获取 $token。

$token = FBUtils::login(AppInfo::getHome());
if ($token) {
...
} else {
  // Stop running if we did not get a valid response from logging in
  exit("Invalid credentials");
}

使用http://developers.facebook.com/docs/authentication/中的过程来确定 FBUtils::login 失败的原因。

或者,您可能希望使用已经具有“Facebook::getLoginUrl”等功能的 Facebook PHP SDK (http://developers.facebook.com/docs/reference/php/) 并绕过此错误。

于 2011-11-01T04:17:03.097 回答
0

转到getHome()AppInfo.php 中的函数并找到以下行:

return ($_SERVER['HTTP_X_FORWARDED_PROTO'] ?: "http") . "://" . $_SERVER['HTTP_HOST'] . "/"; 

您必须更改$_SERVER['HTTP_HOST']为画布页面 URL:

return ($_SERVER['HTTP_X_FORWARDED_PROTO'] ?: "http") . "://" . "apps.facebook.com/yourappname"  . "/"; 

yourappname你的应用命名空间应该在哪里。

请注意,如果您应用这些更改,您将无法使用应用程序的 heroku 页面,因为它将重定向到画布页面。

于 2011-11-21T11:49:26.830 回答
0

我在尝试将我的应用程序包含在 Facebook 的页面选项卡中时遇到了类似的问题。问题的答案是编辑 FBUtils.php。

寻找:

      echo("<script> window.location.href='" . $authorize_url . "'</script>");

用。。。来代替:

echo("<script> window.location.href='" . $authorize_url . "'</script>");

此行可以在 FBUtils.php 的第 94 行找到

于 2012-01-16T20:57:57.887 回答