Post-Status, wenn Benutzer zum ersten Mal mit Facebook
-
26-09-2019 - |
Frage
Ich habe nun gelungen, einen Status geschrieben zu erhalten, wenn ein Benutzer auf einen Link klickt. Ich würde jetzt wie ein Status gebucht werden, wenn sie zum ersten Mal Login mit Facebook und die Berechtigungen übernehmen.
Bitte Hilfe! Ich verwende diesen Code für die Login-Button:
<fb:login-button ></fb:login-button>
Seien Sie konkret mit mir, ich bin neu in der Facebook Connect.
Lösung
Da Sie einen Benutzer und ein Beitrag von einem Link zur Authentifizierung verwaltet werden, dann wird es einfach sein, nur auf dem auth.login
Ereignis Kommentar verfassen Methode aufrufen, so etwas wie dies tun würde:
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);
}
});
}
Ergebnis:
EDIT:
Auch stellen Sie sicher, haben Sie die richtigen Berechtigungen in Ihrem Fall publish_stream
:
<fb:login-button perms="read_stream,publish_stream"></fb:login-button>
Andere Tipps
Ändern Sie einfach diesen 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>