0

该页面被喜欢,我的应用程序正在检查它是否喜欢,但如果我回到 index.php,它会说它不喜欢。

我正在使用:

if ($signed['page']['liked'] <> 1) {
    $core->redirect('gate');
}

然后我开始使用它,但是当我单击索引时,它一直移动到 apps.facebook.com/myapp,然后重定向回另一个页面。但问题是在不同的文件夹中有另一个 index.php 文件用于不同的语言,我不能使用它,因为它会重定向到英文版本。我怎样才能解决这个问题?

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!";
    } else {
      //echo "Please click on the Like button to view this tab!";
      $core->redirect('gate');
    }
  }
4

1 回答 1

0

中的page部分signed_request仅在应用程序加载到页面选项卡时出现,而不是作为画布应用程序。

{根据下面的评论进行编辑: - 阅读signed_request文档- 签名的请求仅出现在 Facebook 发出的 POST 请求中 - 如果用户单击页面选项卡应用程序内的链接,或者如果您从登陆 URL 重定向,则不存在到您应用内的另一个网址}

于 2012-11-13T22:31:21.060 回答