2

Web サイトに「いいね」ボタンを追加しましたが、誰が「いいね」ボタンをクリックしたか知りたいです。これらは私のサンプルコードです:

    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({appId: '182722795115444', status: true, cookie: true,
                 xfbml: true});

        // To find who clicked the like button
        FB.Event.subscribe('edge.create', function(response){
            FB.getLoginStatus(function(response) {

                if (response.session) {
                    // logged in and connected user, someone you know
                    alert("logged in and connected user");
                } else {
                    // no user session available, someone you dont know
                    alert("no user session available");
                }
            });
        });
      };
      (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>
    <script src="http://connect.facebook.net/en_US/all.js#appId=182722795115444&amp;xfbml=1"></script>
    <fb:like href="www.blogcountry.net" send="true" width="450" show_faces="true" font=""></fb:like>

[いいね] ボタンをクリックして facebook にログインすると、いいねが成功しましたが、「利用可能なユーザー セッションがありません」というアラートが表示されました。

だから私は混乱しています:

  1. FB.init の appId は fb:like タグと同じですが、正しいですか?
  2. 私のプログラムに何か問題がありますか?
  3. いいねボタンを押したユーザー名を取得するには?

前もって感謝します。


アップデート:

@OffBySome 回答ありがとうございます。

FB 認証 API を呼び出さなければならないということですか。そうすれば、ユーザーの情報を取得できますか? しかし... Facebookの開発ドキュメントFAQ:


ユーザーが [いいね] ボタンをクリックしたことを知るにはどうすればよいですか?

ボタンの XFBML バージョンを使用している場合は、FB.Event.subscribe を介して「edge.create」イベントをサブスクライブでき ます


つまり、誰が Like ボタンをクリックしたかはわかりません。ボタンがクリックされたことだけはわかります。

ユーザーの情報を取得したい場合は、[いいね!] をクリックする前にログイン アクションを実装する必要があります。使い勝手が本当に悪いです。

誰かがそれを解決するための良いアイデアを与えることができます...

4

2 に答える 2

2

これを試して..

FB.Event.subscribe('edge.create', function(href, widget) 
{                   
alert('You just liked '+href);  

    session = FB.getSession();
    uid = session['uid'];
    alert(uid);

});
于 2011-07-08T17:43:48.080 に答える
2

ページに「いいね!」をしただけでは、Facebook セッションに参加できないと確信しています。通常、ユーザーがアプリケーションで (たとえば、<fb:login-button autologoutlink="true"></fb:login-button>) で認証する場合にのみ、ユーザーの Facebook セッションを取得します。その関数内で実行すると、alert(JSON.stringify(response));どのような値が得られますか?

于 2011-06-20T19:45:11.163 に答える