facebook更新上的评论和点赞



我一直在developers.facebook.com网站上阅读,但他们对这些事情的解释非常糟糕。因此,我希望你们中的一些人能向我解释如何使用JavaScript和Graph API在Facebook状态上添加评论和点赞按钮。

我现在有一个应用程序,可以显示登录用户的主页订阅源(如果你愿意,可以是新闻订阅源(。我想要的是基本的Facebook功能,即能够评论和点赞这些状态、图像、共享等(就像你在Facebook上一样(,还可以查看其他对这些照片和状态发表评论和点赞的人。

我知道你需要使用POST方法,但我不知道我会怎么做(这里有一些信息:http://developers.facebook.com/docs/reference/api/publishing/)

所以这是我现在的代码(我不知道这是否是最有效的方法,但它有效。如果你也能给我一些建设性的批评,我会很高兴(:

FB.api('/me/home', function(response) {
  console.log(response.data);
  for(var i=0, len = response.data.length; i < len; i++){ 
    var post_type = response.data[i].status_type; //Post type
    var poster_id = response.data[i].from.id; //Poster
    var poster_name = response.data[i].from.name; //Posters name
    var poster = '<a href="http://www.facebook.com/' + poster_id + '/" >' + poster_name + '</a>'; //Link to poster
    var poster_pic  = 'https://graph.facebook.com/' + poster_id + '/picture'; //Posters profile pic
    var poster_img = '<img height="50px" width="50px" src="' + poster_pic + '" />';
    var post_id = response.data[i].id; //Id of message
    var post = response.data[i].message; //Content of message
    var post_date = response.data[i].created_time; //Date created
    var object_id = response.data[i].object_id; //Pic id (if pic's an object)
    var post_img_url = response.data[i].picture; //Pic url
    if(!object_id) {
      var post_img = '<a href="http://www.facebook.com/' + post_id + '/"> <img src="' + post_img_url + '" /> </a>'; // <a href="http://www.facebook.com/' + post_id + '/">See at Facebook</a>
    } else {
      var post_img = '<a href="http://www.facebook.com/' + object_id + '/"> <img src="' + post_img_url + '" /> </a>';
    }
    if (!post_img_url) {
      post_img = '';
    }
    if(!post) {
      post = response.data[i].story;
    }
    if (post_type === 'wall_post') {
      if(response.data[i].to) {
        var posted_to_name = response.data[i].to.data[0].name;
        var posted_to_id = response.data[i].to.data[0].id;
        var posted_to = '<a href="http://www.facebook.com/' + posted_to_id + '/" >' + posted_to_name + '</a>';
        document.getElementById("write").innerHTML += ('<hr> <div class="facebook_content"> <div class="facebook_left_side"> <div class="facebook_content_header"> <div class="poster_img">' + poster_img + '</div> <div class="poster">' + poster + '</div> <div class="post_type"> wrote on ' + posted_to + ''s wall: </div> <div class="post_date">' + post_date + '</div> </div> <div class="story">' + post + '</div> </div> <div class="facebook_right_side"> <div class="img">' + post_img + '</div> </div> </div> </br>');
      } else {
        document.getElementById("write").innerHTML += ('<hr> <div class="facebook_content"> <div class="facebook_left_side"> <div class="facebook_content_header"> <div class="poster_img">' + poster_img + '</div> <div class="poster">' + poster + '</div> <div class="post_date">' + post_date + '</div> </div> <div class="story">' + post + '</div> </div> <div class="facebook_right_side"> <div class="img">' + post_img + '</div> </div> </div> </br>');
      }
    } else if (post_type === 'added_photos') {
      document.getElementById("write").innerHTML += ('<hr> <div class="facebook_content"> <div class="facebook_left_side"> <div class="facebook_content_header"> <div class="poster_img">' + poster_img + '</div> <div class="poster">' + poster + '</div> <div class="post_type"> added a photo: </div> <div class="post_date">' + post_date + '</div> </div> <div class="story">' + post + '</div> </div> <div class="facebook_right_side"> <div class="img">' + post_img + '</div> </div> </div> </br>');
} else if (post_type === 'shared_story') {
      document.getElementById("write").innerHTML += ('<hr> <div class="facebook_content"> <div class="facebook_left_side"> <div class="facebook_content_header"> <div class="poster_img">' + poster_img + '</div> <div class="poster">' + poster + '</div> <div class="post_type"> shared: </div> <div class="post_date">' + post_date + '</div> </div> <div class="story">' + post + '</div> </div> <div class="facebook_right_side"> <div class="img">' + post_img + '</div> </div> </div> </br>');
} else {
      document.getElementById("write").innerHTML += ('<hr> <div class="facebook_content"> <div class="facebook_left_side"> <div class="facebook_content_header"> <div class="poster_img">' + poster_img + '</div> <div class="poster">' + poster + '</div> <div class="post_date">' + post_date + '</div> </div> <div class="story">' + post + '</div> </div> <div class="facebook_right_side"> <div class="img">' + post_img + '</div> </div> </div> </br>');
}
  }
});

很明显,我需要添加三个(或更多(div,它们分别包含点赞和评论按钮,并且至少有一个可以在点击时显示最新的评论(就像在Facebook上一样(。我需要添加一些JS代码,它会向facebook发送一个请求,其中包含状态/图像的id、用户的id、执行的操作类型(点赞或评论(,最后是评论的内容。

我之所以要求提供这些信息,是因为我正在做一个项目,我只是在尝试Facebook Graph API的不同功能,因为它们可以很好地添加到我的项目功能中,很高兴知道这一点,以供将来参考。

希望你们中的一些人知道我能做些什么来让它发挥的作用

真诚地,亚历山大。

就我个人而言,我认为Docs做得很好。

来自文档:

Create
You can write to the POST_ID/comments connection to post a comment to the post by issuing an HTTP POST request with the publish_stream permission and following parameters.
Parameter    Description     Type    Required
message Comment text    string   yes

评论很简单,一旦你有了想要评论的帖子的ID,只需运行

 var comment = 'Reading JS SDK documentation';
 var POST_ID = '1231412351234';
 FB.api('/'+POST_ID+'/comments', 'post', { message: comment }, function(response) {
  if (!response || response.error) {
    alert('Error occured');
  } else {
    alert('Great! It worked!');
  }
});

同样,喜欢更简单。来自相同的文档:

You can like a Post by issuing a HTTP POST request to the POST_ID/likes connection with the publish_stream permission. You can suppress the notification created when liking a Post by passing a notify parameter with value of false.

因此,在Javascript中:

 var POST_ID = '1231412351234';
 FB.api('/'+POST_ID+'/likes', 'post', function(response) {
  if (!response || response.error) {
    alert('Error occured');
  } else {
    alert('Great! It worked!');
  }
});

最新更新