Я читал на сайте developments.facebook.com, но они очень плохо объясняют эти вещи. Поэтому я надеюсь, что некоторые из вас могли бы объяснить мне, как я могу добавить комментарий и кнопку «Мне нравится» в статусах Facebook, используя JavaScript и Graph API.
Теперь у меня есть приложение, которое отображает домашнюю ленту вошедшего в систему пользователя (новостную ленту, если хотите). Чего я хочу, так это базовой функциональности 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 с идентификатором статуса/изображения, идентификатором пользователя, типом выполняемого действия (нравится или комментарий) и, наконец, какое содержание комментарий в таком случае.
Причина, по которой я запрашиваю эту информацию, заключается в том, что я работаю над проектом и просто пробую различные функции Facebook Graph API, поскольку они могут стать хорошим дополнением к функциям моего проекта, и это полезно знать. для будущих ссылок.
Надеюсь, некоторые из вас знают, что я могу сделать, чтобы заставить его работать
С уважением, Александр.