React Native FBSDK Далее: Facebook Login не возвращает электронную почтуAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 React Native FBSDK Далее: Facebook Login не возвращает электронную почту

Сообщение Anonymous »

Привет, я пытаюсь позволить пользователям войти в систему в Facebook и получить их идентификатор, имя и электронную почту.
Поток входа работает - я вижу, как входной ManAnager возвращает успех, и токен доступа действителен. Я даже прошу «Электронная почта» разрешение, а Facebook подтверждает, что она предоставлена. class = "Snippet-Code">

Код: Выделить всё

const fetchFacebookProfile = (accessToken) => {
return new Promise((resolve, reject) => {
const request = new GraphRequest(
"/me?fields=id,name,email,picture",
{ accessToken },
(error, result) => {
if (error) {
console.error("❌ GraphRequest error:", error);
reject(error);
} else {
console.log("✅ GraphRequest result:", result);
resolve(result);
}
}
);
new GraphRequestManager().addRequest(request).start();
});
};

const onFacebookSignIn = async () => {
console.log("🔵 Facebook login button pressed");

try {
await LoginManager.logOut(); // reset state

if (Platform.OS === "android") {
LoginManager.setLoginBehavior("web_only");
} else {
LoginManager.setLoginBehavior("browser");
}

const result = await LoginManager.logInWithPermissions([
"public_profile",
"email",
]);

console.log("📋 Facebook LoginManager result:", result);

if (result.isCancelled) {
console.log("⚠️ Facebook login was cancelled by user");
return;
}

const data = await AccessToken.getCurrentAccessToken();
console.log("🔑 Facebook AccessToken data:", data);

if (!data?.accessToken) {
throw new Error("Failed to get token from Facebook");
}

const profile = await fetchFacebookProfile(data.accessToken);

if (!profile?.email) {
console.warn("⚠️ Facebook did not return email. Fallback may be required.");
}

console.log("👤 Final Facebook profile object:", profile);

// send profile + token to backend...
} catch (err) {
console.error("❌ Facebook login error:", err);
}
};< /code>
< /div>
< /div>
< /p>
Результат LoginManager показывает, что разрешение по электронной почте было предоставлено ✅ < /p>
Токен доступа. class = "Snippet">

📋 Facebook LoginManager result: {"declinedPermissions": [], "grantedPermissions": ["openid", "public_profile", "email"], "isCancelled": false}
✅ Granted permissions: openid,public_profile,email

👤 Final Facebook profile object: {
"id": "122102279283016873",
"name": "Hamed El Ghoul",
"picture": {
"data": {
"height": 50,
"is_silhouette": true,
"url": "https://scontent-yyz1-1.xx.fbcdn.net/...jpg",
"width": 50
}
}
}
⚠️ Facebook did not return email. Fallback may be required.



Подробнее здесь: https://stackoverflow.com/questions/797 ... turn-email
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»