我一直在阅读的developers.facebook.com网站,但他们解释这些事情非常糟糕。所以我希望你们中的一些人能够向我解释如何使用JavaScript和Graph API在Facebook上添加评论和喜欢按钮。评论和喜欢facebook的更新
我现在所拥有的是一个显示登录用户的home-feed(如果你想要的新闻源)的应用程序。我想要的是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>');
}
}
});
我显然需要添加三个(或更多)divs,其中包含like和comment按钮,并且至少有一个用于显示点击时的最新评论(就像在Facebook上一样)。我需要添加一些JS代码,向Facebook发送请求,其中包括状态/图像的ID,用户的ID,执行的操作类型(如评论或评论)以及最后的内容在这种情况下评论。
我请求这些信息的原因是我正在开发一个项目,我只是尝试了Facebook Graph API的不同功能,因为它们可以很好地补充我的项目功能,并且很高兴知道未来的参考。
希望你们当中有些人知道我能做些什么,使工作
真诚, 亚历山大。
感谢的人!一旦我到达我的电脑,我会尝试这个,并会通知你,如果它的工作或没有:) 只是一个问题。我将如何在我现有的代码中实现这一点?我会在哪里放你的代码等? – Aleksander 2013-02-26 18:16:35
我无法帮你了解详情,我需要整个项目。把该代码放在你想要的/评论的地方。 – 2013-02-26 18:54:35
好的,所以我现在有空试试了。起初它似乎工作,但我遇到了一个大问题。所以,我做了一个if/else检查,看看是否有与帖子相关的对象。在这种情况下,like函数接受变量object_id。但是如果有一个标准的帖子(没有任何对象),它需要从'response.data [i] .id'中检索到的变量Post_id。然而,这给了我一个控制台中的错误消息(当我按下类似按钮时):“SyntaxError:至少一位数字必须出现在小数点后”。帖子的ID如下所示:xxxxxxx_xxxxxx – Aleksander 2013-03-02 20:00:52