私はこのシンプルな Facebook アプリを持っています。jQuery を使用し、Facebook 独自の仕様とサンプル コードに従って作成されています。このアプリは、ページを気に入った訪問者のみが利用できます。
PHP でビルドすることに成功しましたが、他の理由から、代わりに Javascript で作成する必要があります。ただし、「has-user-liked-page」機能は起動せず、次のような多数のソリューションを試しました: facebook のようなボタンをクリックした後にイベントが発生しませんか?
現在、Facebook のドキュメントはこれを推奨しています: https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe
私のコードのおそらく最も関連性の高い部分は次のようになります。
....
<body>
<div id="fb-root"><iframe id="contentIframe" scrolling="no"></iframe></div>
<script language="javascript">
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_UK/all.js', function(){
FB.init({
appId: '247171102105...',
channelUrl: 'https://facebook.****.com/customer1/test/channel.html',
});
FB.Event.subscribe('edge.create', function(href, widget) {
alert('You liked the URL: ' + href);
});
FB.getLoginStatus(updateStatusCallback);
});
});
function updateStatusCallback() {
FB.login(function(response) {
if (response.authResponse) {
FB.api('/me', function(response) {
document.getElementById("contentIframe").src = "kalender.php?userID="+response.id+"&userName="+response.name+"&email="+response.email;
//alert(JSON.stringify(response, null, 4));
});
} else {
document.getElementById("contentIframe").src = "fallback.php";
}
}, {scope:'email,publish_stream,user_photos'});
FB.Canvas.setAutoGrow();
}
</script>
....
alert-command が起動されない理由がわかりますか?