以下のコードを使用して、ブログの新しい facebook コメントをキャッチし、いくつかのアクションを実行します (データをデータベースにプッシュし、ユーザーに感謝します)。
<script type='text/javascript' src='//connect.facebook.net/en_US/all.js'></script>
<script type="text/javascript">
FB.Event.subscribe('comment.create', function(a) {
FB.api('comments', {'ids': a.href}, function(res) {
var ufb_message = '';
var ufb_from = '';
var ufb_name = '';
var ufb_jump = false;
var testJSON = res[a.href].comments.data;
var i=0;
while(i < testJSON.length) {
try{
var tempJSON = testJSON[i].comments.data.pop();
if (testJSON[i].comments.count > 0 && tempJSON.id == a.commentID) {
ufb_message = tempJSON.message;
ufb_from = tempJSON.from['id'];
ufb_name = tempJSON.from['name'];
ufb_time = tempJSON.created_time;
i=testJSON.length;
ufb_jump = true;
}
} catch(e) {}
i++;
}
if(!ufb_jump) {
var data = res[a.href].comments.data.pop();
ufb_message = data.message;
ufb_from = data.from.id;
ufb_name = data.from.name;
}
alert('Thanks for your comment!' + ufb_name);
<?php
[...] php code to execute [...]
?>
});
});
</script>
コメントが 25 未満の場合、すべて問題ありません。26 番目以降のコメント データは、常に 25 番目のコメントについて返されます。
json のデフォルトの limit=25 が原因だと思います
pe: https://graph.facebook.com/comments/?ids=http://www.isocial.it/aggiornamento-ios-7-beta-iphone
25 個のコメントを含む最初のページを返します。
コメントが増えると、コードからのデータ キャッチは常に 25 番目のコメントを参照します。
助けてくれて本当にありがとうございます。