Posting comment to Facebook from JavaScript

前端 未结 1 541
时光取名叫无心
时光取名叫无心 2020-12-06 14:15

I have a Facebook application, a Facebook page and a website. When someone adds a comment to my website, I retrieve the comment text from the code below. What I want to do a

相关标签:
1条回答
  • 2020-12-06 15:02

    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:

    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://php-academy.blogspot.com/2011/04/how-to-post-from-facebook-app-to.html

    0 讨论(0)
提交回复
热议问题