[英]Comments and likes on facebook updates
我一直在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,其中分別包含like和comment按鈕,並且至少一個要在單擊時顯示最新評論(就像在Facebook上一樣)。 而且,我需要添加某種JS代碼,該代碼將狀態/圖片的ID,用戶的ID,執行的操作類型(喜歡或評論)以及最后的內容發送到Facebook在這種情況下就是評論。
我之所以要求提供此信息,是因為我正在研究一個項目,而我只是在嘗試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!');
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.