Miért van az, Facebook login modális nem kéri a felhasználók számára hozzáférést e-mail címét?

szavazat
0

Próbálom, hogy integrálja a Facebook bejelentkezési folyamat egy weboldal, és Gondjaim próbál kényszeríteni a bejelentkezési modális hogy kérjen hozzáférést a felhasználó Facebook e-mail címét.

Konkrétan én végrehajtó a következő kódot az én JS:

FB.login((response) => {
    if (response.status === 'connected' &&
        response.authResponse) {
        // Do something with the response here.
    }
}, {
    scope: 'email',
    return_scopes: true
});

A válasz jön vissza, mint csatlakoztatni, ha a felhasználó sikeresen bejelentkezik, és kapok a felhasználói azonosítója, hozzáférési token, stb, de ha rákattint a gombra, az én felhasználói felület, amely felhívja FB.logina modális bukkan fel Facebook csinál nem kérheti a felhasználót, ha akarnak biztosít hozzáférést az e-mail címét. Miért?

A helyszínen építek, azt kell a hozzáférést a felhasználó Facebook e-mail címét. Ha ők is kérték, és megtagadja a hozzáférést, az egy dolog, de a modális felugró nem is kérve őket, hozzáférést az e-mail címét, és nem értem, hogy az e-mail cím vissza a választ.

Továbbá, ha azt, hogy egy későbbi hívást a következőkben a emailengedélyével jön vissza, mint declined:

FB.api(`/${response.authResponse.userID}/permissions`, (response) => {
    console.log(response);
});

Tudja valaki, hogy miért nem tudok a felhasználó megkérdezése a hozzáférést e-mail címét? Kösz.

A kérdést 14/02/2020 00:03
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Még egyszer köszönjük, hogy misorude a választ. Anélkül, hogy én még soha nem jöttem rá. Összefoglalva mindent, a probléma az volt, hogy a vizsgálat során, már látszólag már egyszer elutasította a kérést, hogy hozzáférést biztosít az én e-mail címét, és azt követően, hogy többé nem kért tőlem engedélyt hozzáférhessen.

Mint ilyen, akkor át kell adni egy extra paramétert FB.loginannak érdekében, hogy kényszeríteni, hogy újra kérje a felhasználó számára hozzáférést e-mail címre. Pontosabban, ez a authTypeparaméter, és itt van, hogyan adja át:

FB.login((response) => {
    if (response.status === 'connected' &&
        response.authResponse) {
        // Do something with the response here.
    }
}, {
    scope: 'email',
    authType: 'rerequest'
});

Hogy kapsz hozzáférést e-mail címre (feltételezve, hogy a felhasználó egy bejegyzett, újra köszönhetően misorude számára megjegyezve, hogy), de ez valójában nem tér vissza az e-mail címét. Ahhoz, hogy, hogy akkor majd meg kell küldeni egy API kérést /meegy fieldsparaméter kérő e-mail címét, hogy értem. Rájöttem, hogyan lehet, hogy a következö SO válasz: https://stackoverflow.com/a/31763373/1992973

Pontosabban, egy teljes megoldást olyasmi mint a következő:

FB.login((response) => {
    if (response.status === 'connected' &&
        response.authResponse) {
        FB.api('/me?fields=email', (response) => {
            // The email should be in the response, assuming the user has one registered with FB.
        });
    }
}, {
    scope: 'email',
    authType: 'rerequest'
});
Válaszolt 14/02/2020 16:45
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more