4

そのページが気に入らなかった人だけのために、そのページにFacebookのようなボタンを表示したいと思います。そのため、ユーザーがすでにページのファンである場合、「いいね」ボタンは表示されません。

user_likes多くの調査を行ったところ、Facebook接続を実装し、アクセス許可を取得して、接続されたユーザーがリストにページを持っているかどうかを確認する必要があることがわかりました。これは実用的な例ですhttp://www.fbrell.com/fb.api/does-like

基本的に、これを行うコードが必要です:

ユーザーが接続をクリックすると、コンテンツが変更され、接続されたユーザーが過去にそれを気に入らなかった場合は、Facebookの「いいね」ボタンが表示されます。

4

3 に答える 3

5

JavaScriptSDKを実装する

xfbmlJS SDKの初期化中に、プラグインが自動的にレンダリングされないように、必ずfalseに設定してください。許可をリクエストuser_likesする必要があります。つまり、サイトをFacebookアプリケーションに関連付ける必要があります。これは、Facebookが誰がどのデータを要求しているかを追跡できるようにするためです。このメソッドを使用して、Fb.login()アクセス許可を要求し、ユーザーを認証できます。

JavaSctipt SDKを入手したら、次の方法でAPIを呼び出すことができます。

  • グラフ
    FB.api('me/likes/PAGE_ID')

  • FQL
    FB.api("fql?q='SELECT+uid+FROM+page_fan+WHERE+uid=me()+AND+page_id=PAGE_ID")

それらがデータを返す場合は、同様のプラグインを表示しないことがわかっています。ただし、ユーザーがまだページを高く評価していない場合、これらの呼び出しは空の結果を返し、FB.XFBML.parse()メソッドを呼び出して同様のプラグインをレンダリングできます。

于 2012-07-01T22:26:32.017 に答える
1

Graph APIを呼び出す必要があります
。ページIDを取得しFB.api('http://your-url.com');
たら、現在のユーザーがFQLクエリを使用してページを気に入っているかどうかを確認できます。

'SELECT uid FROM page_fan WHERE uid=me() AND page_id=YOUR-PAGE-ID'
于 2012-07-01T21:08:02.520 に答える
0

いいねボタンがキャンバスページまたはページタブにある場合は、signed_requestを読み取ることでファンゲートを実装できます。さまざまなサーバー側言語のstackoverflowでも、これを行う方法に関するチュートリアルとヒントがたくさんあります。たとえば、この回答は次のとおりです。https
://stackoverflow.com/a/7671496/601466 「ファンゲート」と「署名付きリクエスト」を検索するだけです。

于 2012-07-01T21:59:13.310 に答える