0

ユーザーが上部にある公式の Facebook の「いいね」ボタンを使用して iframe ページ タブを気に入ったかどうかをデータベースに記録する必要があります。ここでstackoverflowで検索を行ったところ、javascriptスニペットが見つかりました...

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
    }
);

しかし、公式のボタンに対しては発火しません (ページに追加されたボタンのようにのみ)? FB.init の後、非同期呼び出し内で FB.Canvas がサイズ変更される前に宣言します。PHP でこれをキャプチャする方法はありますか?更新時に可能ですか? JS または PHP のどちらでも問題ありません (JS は単純に php ファイルを ajax できるため)。署名されたリクエストには、ページが好きかどうかが含まれていますが、それが起こったとき (またはちょうど起こったとき) にキャプチャする必要があります。どんな助けでも大歓迎です:-)

4

2 に答える 2

0

試す :

window.fbAsyncInit = function () { FB.Event.subscribe('edge.create', function (targetUrl) { _gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]); }); };

fbAsyncInit 内で添え字を設定するだけでよいと思います。

于 2013-03-20T02:02:30.930 に答える
0

最終的には純粋にPHPの方法でした。

1: Facebook から署名済みのリクエストを取得し、いいねされた統計を抽出する

2: 変数 $liked を作成し、署名されたリクエスト値に基づいて「yes」または「no」に設定します

3: セッションを操作する - 「いいね」するとページが更新されるため、セッションを使用しますが、セッションは残ります (ただし、リクエスト値は変更されます)。

if(isset($_SESSION['likestatus'])){
    if($_SESSION['likestatus'] == "no" && $liked == "yes"){
        // do mysql updatestuff cause has liked page since session started  
        $_SESSION['likestatus'] = $liked;
    }
    else{
        $_SESSION['likestatus'] = $liked;
    }    
}
else {
    $_SESSION['likestatus'] = $liked;    
}
于 2013-03-20T20:42:21.117 に答える