ホームページ  >  記事  >  ウェブフロントエンド  >  API を使用して Facebook ユーザーが私のページを気に入ったかどうかを確認するにはどうすればよいですか?

API を使用して Facebook ユーザーが私のページを気に入ったかどうかを確認するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-25 01:14:10406ブラウズ

How Can I Check if a Facebook User Liked My Page Using the API?

API を使用した Facebook ページの「いいね!」の識別

Facebook の API は、ユーザーが特定のページまたは URL に「いいね!」をしたかどうかを判断するメソッドを提供します。この機能の使用方法を示す JavaScript コード スニペットを次に示します。

FB.api({
    method:     "pages.isFan",
    page_id:        my_page_id,
},  function(response) {
        console.log(response);
        if(response){
            alert('You Likey');
        } else {
            alert('You not Likey :(');
        }
    }
);

このコードは単純そうに見えますが、必ずしも期待した結果を返すとは限りません。これは、「pages.isFan」メソッドではユーザーがアプリに対する拡張権限を付与する必要があり、これはすべての場合に受け入れられるわけではないためです。

署名付きリクエストを使用した代替アプローチ

ページの「いいね!」をチェックする別の方法は、OAuth 2.0 for Canvas の詳細オプションを使用することです。有効にすると、Facebook はページリクエストに「signed_request」パラメータを含めます。このパラメータを解析すると、ユーザーがページを気に入ったかどうかなど、ユーザーに関する情報を取得できます。

署名付きリクエストを解析する 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;
  }

これを使用する関数を使用すると、返されたデータの 'page.liked' プロパティを確認できます。

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!";
    }
  }

このアプローチでは、より信頼性の高いデータが提供されます。追加の権限を必要とせずにページのいいねを決定する方法。

以上がAPI を使用して Facebook ユーザーが私のページを気に入ったかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。