Facebookでポスト状態のユーザーが最初にログイン
-
26-09-2019 - |
質問
私は今、ユーザーがリンクをクリックしたときに投稿ステータスを取得するために管理しています。私は今の状態のように、彼らのFacebookでの最初のログインと権限を受け入れる際に掲示されるでしょう。
助けてください!私は、ログインボタンのため、このコードを使用しています:
<fb:login-button ></fb:login-button>
は私と一緒に、特定の私はFacebookの接続に新たなんだ。
解決
あなたは、リンクからユーザーとポストを認証するために管理しているので、
は、その後、物事はあなたの投稿メソッドを呼び出すだけで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);
}
});
}
結果:
編集:
また、必ず、あなたのケースの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>
所属していません StackOverflow