Accesso token da JavaScript
-
27-10-2019 - |
Domanda
Sono abbastanza nuovo su Facebook e sto cercando di mostrare una semplice finestra di dialogo che scriverà al muro ... ma senza fortuna ... :-(
Ho provato questo:
<!DOCTYPE HTML>
<html xmlns:fb="https://www.facebook.com/2008/fbml">
<body>
<script src="http://connect.facebook.net/da_DK/all.js"></script>
<div id="fb-root"></div>
<script>
FB.init({appId: '172225549532081', xfbml: true, cookie: true});
FB.getLoginStatus(function(response) {
if (response.authResponse && response.status=="connected") {
console.log("loged in");
} else {
console.log("not logged in");
}
});
FB.ui({
display: 'iframe',
method: 'feed',
name: 'Facebook Dialogs',
link: 'http://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
});
</script>
</body>
</html>
Ma registra sempre "non connesso", anche se ho effettuato l'accesso a Facebook e la finestra di dialogo mi dà questo errore:
API Error Code: 102
API Error Description: Session key invalid or no longer valid
Error Message: Iframe dialogs must be called with a session key
Ho cercato dappertutto, ma non riesco a vedere come ottenere il access token
ovunque.
Che cosa sto facendo di sbagliato?
Grazie in anticipo...
Soluzione
Prova questo:
FB.login(function(response) {
if (response.authResponse) {
console.log('Logged in');
} else {
console.log('Not logged in');
}
});
Solo perché l'utente è effettuato l'accesso su Facebook.com, non viene effettuato automaticamente il tuo sito. Devono autenticarsi sul tuo dominio, prima con la tua app. Dovrai chiamare la funzione di accesso dopo aver fatto clic su qualcosa, poiché causerà un pop -up.
Altri suggerimenti
Il tuo utente è connesso alla tua app?
Se l'utente non è connesso alla tua app, puoi chiedere all'utente di accedere all'app avendo un pulsante di accesso (http://developers.facebook.com/docs/reference/plugins/login/)
Il codice seguente controllerà lo stato dell'utente e mostrerà un pulsante di accesso, se necessario.
Non dimenticare di impostare l'attributo perms per avere un permesso adeguato, come ad esempio
FB.getLoginStatus(function(response) {
if (response.authResponse) {
// logged in and connected user, someone you know
} else {
// no user session available, someone you dont know
$('<fb:login-button></fb:login-button>').appendTo('body')
}
});
FB.ui({
display: 'iframe',
method: 'feed',
name: 'Facebook Dialogs',
link: 'http://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
access_token: FB.getAuthResponse().accessToken // **This should work and tested** also!!!
});