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 からリダイレクトする場合は存在しませんアプリ内の別の URL へ}

于 2012-11-13T22:31:21.060 に答える