0

以下のコードを使用してファンゲートされた 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は変わりません。

ただし、問題は、フォームが送信されると、ページが「いいね」されているにもかかわらず、ページ オーバーレイが表示されることです。

いいねゲートは、フォームが送信される前にページのオーバーレイを表示/非表示にするために完全に機能します。

どんな助けでも大歓迎です。ありがとう。

ベスト、アレクサンダー

4

2 に答える 2

0

signed_request、最初に iframe にロードされるときにのみアプリケーションに渡されます。

この値を保持するには、セッション変数に保存する必要があります。

できることは、サーバーがフォームを解析するときに、そのユーザーが URL を「気に入った」かどうかを知ることができるように、URL を既に「気に入った」ユーザーのフォームにパラメーターを追加することです。

于 2014-07-06T14:56:38.960 に答える
0
<p>Hey, check out my fiddle, should give you a big help.</p>

http://jsfiddle.net/972NF/

于 2014-07-08T04:48:37.123 に答える