نشر الحالة عندما يقوم المستخدم أولاً بتسجيل الدخول مع Facebook

StackOverflow https://stackoverflow.com/questions/4226849

سؤال

لقد تمكنت الآن من نشر حالة نشر عند النقر على رابط. أود الآن أن يتم نشر الحالة عند تسجيل الدخول لأول مرة مع Facebook وقبول الأذونات.

الرجاء المساعدة! أنا أستخدم هذا الرمز لزر تسجيل الدخول:

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

كن محددًا معي أنا جديد على Facebook Connect.

هل كانت مفيدة؟

المحلول

نظرًا لأنك تمكنت من مصادقة مستخدم ونشره من رابط ، فإن الأمور ستكون سهلة ، فقط على auth.login حدث استدعاء طريقة النشر الخاصة بك ، شيء من هذا القبيل سيفعل:

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);
        }
    });

}

نتيجة:
alt text

تعديل:
تأكد أيضًا من أن لديك الأذونات المناسبة في قضيتك publish_stream:

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

نصائح أخرى

فقط قم بتعديل هذا الرمز

<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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top