【问题标题】:Fan gate facebook tab does not work on reload扇门 facebook 选项卡在重新加载时不起作用
【发布时间】:2014-08-27 03:16:49
【问题描述】:

我有一个 Facebook 选项卡,它使用以下代码进行了扇形门控:

<?php
  require 'facebook.php';

  $app_id ="APP_ID";
  $app_secret ="APP_SECRET";
  $facebook = new Facebook(array(
    'appId' => $app_id,
    'secret' => $app_secret,
    'cookie' => true
  ));

  $signed_request = $facebook->getSignedRequest();
  $like_status = $signed_request["page"]["liked"];

?>

<?php if ($like_status) { ?>



  <?php } else { ?>

    Page overlay hides page content for non-fans.

<?php } ?>

Page content here...

该应用允许用户使用 method="post" 提交表单。提交表单后,页面会重新加载,并显示成功消息而不是表单。 URL 不会改变。

然而问题是,当表单被提交时,即使页面被点赞,页面覆盖也是可见的。

like 门非常适合在提交表单之前显示/隐藏页面的叠加层。

任何帮助将不胜感激。谢谢。

最好, 亚历山大

【问题讨论】:

    标签: php facebook facebook-apps facebook-tabs


    【解决方案1】:

    signed_request 仅在首次加载到 iframe 时传递给您的应用程序。

    为了保持这个值,你需要将它保存到一个会话变量中。

    可以做的是为已经“喜欢”该 URL 的用户在表单中附加一个参数,以便服务器在解析表单时能够知道该用户是否“喜欢”这个网址。

    【讨论】:

    • 感谢您的回答。你能举个例子说明如何将这样的参数附加到表单中吗?谢谢你:)
    • @mrcarlsen - 您可以使用hidden 输入字段。您需要在页面加载后将值插入到输入中 - 为此您需要一些 JavaScript(但这已经是一个不同的问题)
    【解决方案2】:
    <p>Hey, check out my fiddle, should give you a big help.</p>
    

    http://jsfiddle.net/972NF/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多