Devo effettuare una chiamata API di grafico tramite FB.api
per ottenere il nome dell'utente corrente registrato? O c'è un modo più semplice/più veloce?Facebook JS SDK come ottenere il nome utente corrente?
risposta
Sì, è necessario utilizzare la chiamata api, poiché non è codificata nel token di accesso o in qualsiasi altra informazione passata a un'applicazione.
Se la preoccupazione è la prestazione, è possibile naturalmente memorizzare nella cache il risultato.
È possibile utilizzare il FB.api come segue
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.api('/me', function(response) {
$('#name').html("Welcome " + response.name);
});
Questo è tutto ciò che serve.
Se si desidera il nome, dovrebbe essere 'response.first_name', non' response.name' –
@ Super Chafouin ringraziamenti ma response.first_name non è definito. –
L'SDK javascript che Facebook consente di ottenere il nome, il cognome (che non richiede un permesso speciale), la cronologia scolastica e molto altro che un profilo utente di Facebook ha. Ma per ottenere informazioni "sensibili" l'utente deve approvare la tua app (se non lo ha già fatto) e quindi approvare le informazioni "sensibili" come la cronologia educativa. La pagina http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html mostra l'intero processo di lavoro con l'SDK javascript e alcune informazioni su come configurare le app con pagine web.
Gli attributi firstname e lastname non vengono più restituiti dalla richiesta di login dell'API FB JS SDK. Questo è cambiato a volte tra ver. 2.2 (06/2014) e 2.5 (01/2015).
La ragione è, che la richiesta di accesso restituisce solo attributi a disposizione del pubblico, che è fbid e nome. Nome e cognome non sono attributi accessibili pubblicamente e richiedono autorizzazioni concesse da un utente. See here.
usiamo una "supposizione soluzione" - se l'attributo nome ha più di 1 parola, li abbiamo divisi in cognome e cognome attributi, o compilare firstname dal nome. È meglio/più facile in alcune situazioni che infastidire gli utenti con permessi, controlli di risposta, callback, ecc.
Dove lo inserirò nella cache? Memoria locale? – ma11hew28
'' 'window.localStorage.setItem ('facebook', JSON.stringify (response));' '' – Alastair