用javascript显示Facebook fql.query结果

时间:2012-06-05 15:09:41

标签: javascript facebook facebook-fql

我正在学习javascript和Facebook API,我正在尝试显示用户新闻源。我知道我需要使用的查询,但我不知道如何使用javascript显示结果。这是我的查询

SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0

我很确定用于显示每个结果的forEach循环是我需要做的,但我如何使用新闻源帖子信息填充每个结果?

修改

好的,我的新代码可以正确接收查询结果。不幸的是,结果并没有显示出来。

<script>

function showPosts() {
    FB.api("/fql?q="+encodeURIComponent("SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0"), function(response, post_id, actor_id, message) {

    console.log(response);

    var posts = response.data
    var postId = post_id.data;
    var message = message.data;

    for (var i=0; i < posts.length && i < 25; i++) {
      var post = posts[i];

     markup += '<div>' + post.postId + post.message + '<div/>';
  }

    document.getElementById('newsfeedposts').innerHTML = markup;

});

</script>

2 个答案:

答案 0 :(得分:1)

通过FB.api执行查询,并处理您将在回调函数中返回的数据。

FB.api("/fql?q="+encodeURIComponent("SELECT ..."), function(response) {
  console.log(response);
})

在Firefox中执行该操作,查看Firebug控制台,您应该了解响应的构造方式。

答案 1 :(得分:0)

FB.api(

     'fql',


     {'q' : "SELECT url, like_count FROM link_stat WHERE url='http://stackoverflow.com/';"},


     function (response){
          console.log(JSON.stringify(response));
     }

);