简体   繁体   English

从JavaScript发布对Facebook的评论

[英]Posting comment to Facebook from JavaScript

I have a Facebook application, a Facebook page and a website. 我有一个Facebook应用程序,一个Facebook页面和一个网站。 When someone adds a comment to my website, I retrieve the comment text from the code below. 当有人在我的网站上添加评论时,我会从下面的代码中检索评论文本。 What I want to do after that is to let my Facebook application post the same comment text to my Facebook page. 之后我想做的是让我的Facebook应用程序将相同的评论文本发布到我的Facebook页面。

This is the JavaScript code I have so far on my website: 这是我到目前为止在我的网站上的JavaScript代码:

 window.fbAsyncInit = function() {
     FB.init({
         appId: " . drupal_to_js($appid) . ",
         status: true,
         cookie: true,
         xfbml: true,
         channelUrl: " . drupal_to_js($channel_url) . "
     });

     FB.Event.subscribe('comment.create', function(response) {
        var commentQuery = FB.Data.query('SELECT text FROM comment WHERE post_fbid=\'' + response.commentID + '\' AND object_id IN (SELECT comments_fbid FROM link_stat WHERE url=\'' + response.href + '\')');

        FB.Data.waitOn([commentQuery], function () {
            var commentRow = commentQuery.value[0];
            var commentText = commentRow.text;

            //TODO Post commentText to the Facebook page.
        });
     });  };

After an extensive search, here is the answer for those who are looking for it. 经过广泛的搜索,这里是那些正在寻找它的人的答案。 Please read the comments inside the code, they will give you more information. 请阅读代码中的注释,它们会为您提供更多信息。

window.fbAsyncInit = function() {
    FB.init({
        appId: " . drupal_to_js($appid) . ",
        status: true,
        cookie: true,
        xfbml: true,
        channelUrl: " . drupal_to_js($channel_url) . "
    });

    FB.Event.subscribe('comment.create', function(response) {  //trigger when comment is created
        var commentQuery = FB.Data.query('SELECT fromid, text FROM comment WHERE post_fbid=\'' + response.commentID + '\' AND object_id IN (SELECT comments_fbid FROM link_stat WHERE url=\'' + response.href + '\')');
        var userQuery = FB.Data.query('SELECT name FROM user WHERE uid in (select fromid from {0})', commentQuery);

        FB.Data.waitOn([commentQuery, userQuery], function () {
          var commentRow = commentQuery.value[0];
          var userRow = userQuery.value[0];

          var commentText = commentRow.text;
          var commentUsername = userRow.name;

          //Call this function to send an Ajax request to Facebook.
          post_to_fb(commentText, commentUsername, response.href);
        });
    }); };

//This function will post to a Facebook page that has the ID $fb_page_id.
//The post format is like this, [NAME said:] POST e.g: [ObyYou said:] this is a test.
//Of course, you can change the format the way you want.
//You have to have an access key to have the permission to post on that page.
//Use the two sites at the bottom of this answer for help, (remember if you
//want to hard-code the access token, you have to create a permenant access token).
//Note that some variables and functions are PHP, since my JavaScript code is
//actually inside a PHP file.
function post_to_fb(commentText, commentUsername, commentLink) {
    var strURL = 'https://graph.facebook.com/" . $fb_page_id . "/feed';
    var params = 'link=' + commentLink + '&message=[' + commentUsername +'+said:]+' + commentText + '&access_token=" . $fb_page_access_token . "';

    var xmlHttpReq;
    xmlHttpReq = new XMLHttpRequest();
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    xmlHttpReq.send(params);
}

Create A (permanent) access_token: 创建A(永久)access_token:

http://www.testically.org/2011/09/27/5-steps-to-automatically-write-on-your-facebook-page-wall-using-the-graph-api-without-a-logged-in-user/ http://www.testically.org/2011/09/27/5-steps-to-automatically-write-on-your-facebook-page-wall-using-the-graph-api-without-a-logged-在用户/

http://php-academy.blogspot.com/2011/04/how-to-post-from-facebook-app-to.html http://php-academy.blogspot.com/2011/04/how-to-post-from-facebook-app-to.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM