1

ウェブを何時間もトロールして、これに関連する多くの投稿を見つけましたが、どれも機能していないようです.jsfiddleのいくつかの「機能する」例でさえ機能しないようです!

ユーザーが自分の Web ページで「いいね」をクリックしたときに登録したいと考えています。

「いいね」リンクが表示され、Facebook にログインするための新しいウィンドウが表示されます。しかし、「edge.create」イベントをサブスクライブできません。「xfbml.render」イベントをサブスクライブできるため、sdk が正常にロードされていることはわかっています。

一部の投稿では、これを機能させるには appId が必要であると書かれていますが [私はそうしています]、なくても機能すると主張する投稿もあります。

これが私のコードです:

注意すべき点の 1 つは、現在これを //localhost:57477 で実行しているため、like href を google.com に設定したことです。投稿の 1 つで、href ドメインが Web ページのドメインと一致しない場合にこのイベントが発生しないという最近の Facebook のバグが特定されたことに注意しましたが、これは現在「修正済み」とマークされています。

<div id="fb-root"></div>
<script>        
    window.fbAsyncInit = function () {
        //console.log('window.fbAsyncInit');

        FB.init({
            appId: 'myappid', 
            status: false,
            cookie: false, 
            xfbml: true
        });

        //Additional initialization code here 
        FB.Event.subscribe('edge.create',
                    function (response) {
                        //console.log('edge.create');
                        alert('edge.create');
                    }
             );

        FB.Event.subscribe('xfbml.render',
                function (response) {
                    //console.log('xfbml.render');
                    alert('xfbml.render');
                }
             );
    };

    // Load the SDK Asynchronously
    (function (d) {
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) { return; }
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    } (document));
</script>

<div href="http://google.com" class="fb-like" data-send="false" data-width="450" data-show-faces="false" data-font="verdana"></div>
4

2 に答える 2

0

あなたのコードは私には良さそうです。問題は FB.init() オプションにあると思います。

これは私が使用するものです:

{
  appId: 'myappid',
  authResponse: false,
  channelUrl: "http://url-to-my-channel-url.com",
  cookie: true,
  oauth: true,
  status: true,
  xbfml: true
}

これらの初期化オプションを使用edge.createして、誰かが [いいね] ボタンをクリックしたときを追跡することができます。

于 2012-09-03T13:13:55.477 に答える