开发者

Post status when user first logs in with Facebook

I have now managed to get a status posted when a user clicks a link. I would now like a status to be posted when they first login w开发者_StackOverflow中文版ith Facebook and accept the permissions.

Please help! I am using this code for the login button:

<fb:login-button ></fb:login-button>

Be specific with me I'm new to the Facebook Connect.


Since you managed to authenticate a user and post from a link, then things will be easy, just on the auth.login event call your posting method, something like this would do:

window.fbAsyncInit = function() {
    FB.init({appId: '<?php echo $this->facebook->getAppId(); ?>', status: true, cookie: true,
        xfbml: true});

    FB.Event.subscribe('auth.login', function() {
        postStatus();
    });
};
(function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
        '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());

function postStatus(){
    var body = 'Reading Connect JS documentation';
    FB.api('/me/feed', 'post', { message: body }, function(response) {
        if (!response || response.error) {
            alert('Error occured');
        } else {
            alert('Post ID: ' + response.id);
        }
    });

}

Result:

Post status when user first logs in with Facebook

EDIT:
Also make sure you have the right permissions in your case publish_stream:

<fb:login-button perms="read_stream,publish_stream"></fb:login-button>


Just modify this code

<div id="fb-root"></div>
<script type="text/javascript">
var uid;
window.fbAsyncInit = function() {
    FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: false});
};
(function() {
    var e = document.createElement('script');
    e.type = 'text/javascript';
    e.src = document.location.protocol +
        '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
}());
window.fbAsyncInit = function() {
     FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true});

         /* All the events registered */
         FB.Event.subscribe('auth.login', function(response) {
             // do something with response
             login();
         });
         FB.Event.subscribe('auth.logout', function(response) {
             // do something with response
             logout();
         });

         FB.getLoginStatus(function(response) {
             if (response.session) {
                 // logged in and connected user, someone you know
                 login();
             }
         });
     };
     function graphStreamPublish(){
           var body = document.getElementById("txtTextToPublish").value;
            FB.api('/me/feed', 'post', { message: body }, function(response) {
                if (!response || response.error) {
                     alert('Error occured');
                } else {
                     alert('Post ID: ' + response.id);
                }
           });
     }
     function fqlQuery(){
         FB.api('/me', function(response) {
              var query = FB.Data.query('select name,email,hometown_location, sex, pic_square from user where uid={0}', response.id);
              query.wait(function(rows) {
                uid = rows[0].uid;
                document.getElementById('name').innerHTML =
                  'Your name: ' + rows[0].name + "<br />" +
                  'Your email: ' + rows[0].email + "<br />" +
                  'Your hometown_location: ' + rows[0].hometown_location + "<br />" +
                  'Your sex: ' + rows[0].sex + "<br />" +
                  'Your uid: ' + rows[0].uid + "<br />" +
                  '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />"
                  '<fb:multi-friend-selector actiontext="Select the friends you want to invite. (All of them.)" rows="3"/>';
              });
         });
     }
     function getFriends(){
         var theword = '/me/friends';
         var params = new Array(uid);
         FB.api(theword,params, function(response) {
           var divInfo = document.getElementById("divInfo");
           var friends = response.data;
           divInfo.innerHTML += '<h1 id="header">Friends</h1><ul id="list">';
           for (var i = 0; i < friends.length; i++) {
             divInfo.innerHTML += friends[i].id+" "+friends[i].name+"<img src=https://graph.facebook.com/"+friends[i].id+"/picture/>";
            // divInfo.innerHTML+= '<fb:name useyou=false uid=100001248074891 firstnameonly=true></fb:name>';//'<fb:name useyou=false uid='+friends[i].id+' firstnameonly=true></fb:name>';

            }
          });
         } 
     function share(){
         var share = {
             method: 'stream.share',
             u: document.getElementById('txtShare').value
         };

         FB.ui(share, function(response) { console.log(response); });
     }               
</script>
<fb:login-button
autologoutlink="true"
perms="email,user_birthday,status_update,publish_stream"></fb:login-button>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜