0

我已经设置了一个 Facebook 应用程序并将其添加为我的粉丝页面上的标签。

以用户身份登录并请求应用页面的直接 URL,显示一切正确。

但是,当我没有登录@facebook 并转到直接 URL 时,应用页面上不会显示任何内容。它只是在画布上显示最大高度为 100 像素的白色背景。

我可以自然地从该页面登录,在登录回调后,我再次正常看到应用页面。

我认为这可能与我的代码有关。但后来我测试删除了我的 index.php 文件中的所有内容,只添加了一些静态虚拟文本。仍然没有任何显示。

有任何想法吗?

编辑1:我认为这可能与我将所有为应用画布定义的URL请求重定向到https有关。我在其他地方读到,Facebook 可能出于某种原因也需要访问相同 URL 的 http。但是还没有找到任何支持这一点的东西。

编辑 2:看到我什至无法得到任何东西,有一个带有静态文本的空白 index.php 我不确定这是否可能与它有关。但是打开我的整个脚本的错误,我得到了一些错误 $signed_request - 猜是因为我在无法检索它时调用它。虽然不知道该怎么做,但无论如何都会发布代码以防有人看到任何东西。

function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
  }

if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
          //echo "This content is for Fans only!";
          $amFan = "true";
    } else {
          //echo "Please click on the Like button to view this tab!";
          $amFan = "false";
    }
}
4

1 回答 1

0

当用户根本没有登录时是否有签名请求?

如果没有,您的代码将返回 falseparsePageSignedrequest()并完全跳过设置$amFan- 在这种情况下,您的其余代码是否有效?

于 2012-11-27T23:43:26.340 回答