2010-11-19 85 views
0

我現在已設法在用戶單擊鏈接時發佈狀態。我現在想要在Facebook首次登錄並接受權限時發佈狀態。用戶首次使用Facebook登錄時的發佈狀態

請幫忙!我使用這個代碼用於登錄按鈕:

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

具體與我我是新來的Facebook連接。

回答

1

既然你成功地驗證從鏈接用戶和後,接下來的事情會很容易,只是在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> 
0

只是修改此代碼

<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

不只是複製/粘貼代碼...嘗試提供一個有用的答案 – ifaour 2011-01-10 13:23:41

相關問題