Facebookの「いいね」ボタンの実装に興味がありますが、このボタンをクリックするユーザーを知りたいので、これから役立つ情報を入手できます。私が読んだことから、facebookは誰が何をクリックしているのかを暗示しています。どのユーザーが特定の製品の「いいね!」ボタンをクリックしたかを追跡する方法についてのアイデアはありますか?
更新:「いいね」ボタンは、iFrameまたはxFBMLを介してfacebookによってレンダリングされます。これが、誰が何をクリックしたかを追跡したり、onclickイベントなどを埋め込んだりするのが難しい理由です。
<script>
FB.Event.subscribe('Edge.create', function(href, widget) {
alert('You just liked the page!');
});
</script>
そのため、www.somewebsite.com/thisIsThePageIlike/facebookUIDのURLを使用して、ログインしている各ユーザーに固有のlikeボタンをレンダリングしました。
これは、いいねボタンを押して、Facebookの検索ランキングを台無しにするという目的に反しませんか?すべてのユーザーは異なるURLを好みます。そのため、facebookは、それぞれが1つのようなカウントを持つ多数のページがあると考えます。
Edge.createイベントが発生しないボタンのようなXFBMLの問題もあります
それでは、実装方法をお知らせします。私が取得したかったのは、facebook接続アプリ内の「いいね」ボタンをクリックするfacebookユーザーのUIDでした。ユーザーが「いいね」ボタンをクリックすると、facebookがボタンから渡されたURLをフェッチすることに気づいたので、www.somewebsite.com/thisIsThePageIlike/facebookUIDのURLを使用して、ログインしている各ユーザーに一意のいいねボタンをレンダリングしました。 。このURLを使用してWebサーバーにリクエストが届くと、コールバックのように機能し、ユーザーが「like」をクリックしたときにUIDを処理および記録します(つまり、「like」のレコードが存在しない場合)データベース内)。私のために働く。
window.fbAsyncInit = function () {
FB.Event.subscribe('Edge.create', function (response) {
alert('Liked');
});
}
);
FB.Event.subscribe('Edge.remove', function (response) {
alert('DisLiked')
});
};
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id))
return;
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
HTML:-
<div id="fb-root"></div><div class="fb-like" data-href="https://www.facebook.com/testpage" data-layout="standard" data-action="like" data-size="small" data-show-faces="true"></div>
それは私が私のクライアントのサイトのために持っているもののようなものでしょう
<iframe src="http://www.facebook.com/plugins/like.php?href=www.jesterkaraoke.com&layout=standard&show_faces=false&width=450&action=like&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>