2012-02-06 9 views
8

widziałem podobne pytanie, i wspomina o zmianie w grudniu 2011 roku, a część ma racjęjak sprawdzić, czy użytkownik przyznano swoje uprawnienia lub nie z FB.login

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

ale reszta stanowi odpowiedź jest źle

zauważyłem to część url chociaż

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

O ile jestem świadomy użytkownik albo daje Ci wszystkie wymagane uprawnienia hurtowych, albo wcale. Tak więc logowanie działa albo nie działa. Nie? – deceze

+0

@deceze, już nie, bieżąca obsługa przepływu uwierzytelniania opcjonalna akceptacja dla niektórych uprawnień i rozszerzone uprawnienia mają osobny krok, który można pominąć ... –

Odpowiedz

16

Będziesz nie wiesz, jakie uprawnienia użytkownik przyznał twojej aplikacji w odpowiedzi na oddzwonienie FB.login. Należy zapytać permissions połączenie dla user obiektu:

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'); 
    } 
    } 
}); 

Aktualizacja:. Chociaż nie jest podane przez Facebooka, że ​​callback dla FB.login nie będzie zawierał własności perms lub scope, która była używana przed przełączeniem na OAuth2, tak jest w tym przypadku! W aktualnej dokumentacji nic nie jest powiedziane o pozwoleniach przekazanych do wywołania zwrotnego dla FB.login, FB.getLoginStatus lub FB.getAuthResponse.

Istnieje również bug report o takim zachowaniu, który jest oznaczony jako nie będzie naprawić

+0

srsly? to działało zanim zmienili je w grudniu :-( – alexl

+0

może addwindowlistener może go złapać, ale nie jestem pewien jak – alexl

+0

Zmieniło się to w październiku, nie? – Igy

Powiązane problemy