2012-02-06 7 views
8

Ho visto una domanda simile, e cita il cambiamento nel dicembre 2011, e quella parte era giustoCome dire se l'utente ha concesso le autorizzazioni o meno con FB.login

http://facebook.stackoverflow.com/questions/8753085/in-facebook-login-how-do-you-see-the-permissions-that-the-user-granted

ma il resto della risposta è sbagliata

ho notato questo è parte dell'URL se

https://s-static.ak.fbcdn.net/connect/xd_proxy.php?version=3&error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request.#cb= ...

+0

Per quanto ne sono a conoscenza l'utente o sovvenzioni, tutti voi richiesto i permessi all'ingrosso, o del tutto assenti. Quindi il login funziona o no. No? – deceze

+0

@deceze, non più, il supporto del flusso di autenticazione corrente opzionale accetta per alcune autorizzazioni e le autorizzazioni estese hanno un passaggio separato che può essere saltato ... –

risposta

16

avrete non sapere quali autorizzazioni l'utente ha concesso alla propria applicazione nel callback FB.login. Si dovrebbe interrogare permissions connessione per user oggetto:

FB.api('/me/permissions', function(response){ 
    if (response && response.data && response.data.length){ 
    var permissions = response.data.shift(); 
    if (permissions.email) { 
     alert('User have granted `email` permission'); 
    } 
    } 
}); 

Aggiornamento:. Anche se non è indicato da Facebook che la callback per FB.login non includerà la proprietà perms o scope che è stata utilizzata prima di passare a OAuth2 questo è il caso! Non è stato detto nulla nella documentazione corrente sulle autorizzazioni passate alla richiamata per FB.login, FB.getLoginStatus o FB.getAuthResponse.

C'è anche bug report su questo comportamento che è contrassegnata come non risolverà

+0

srsly? prima di cambiarlo a dicembre :-( – alexl

+0

forse l'addwindowlistener può prenderlo ma non sono sicuro di come – alexl

+0

cambiato in ottobre, no? – Igy

Problemi correlati