Я правильно отреагировал, что нативное приложение корректно получило сессионный токен, но затем при использовании его с Facebook у меня не было имени пользователя (которое я ожидал бы получить из профиля по умолчанию). Пример кода:
const logFB = async () => {
const { type, token, expires } = await Facebook.logInWithReadPermissionsAsync('46886551064xxxAPP_ID', {
permissions: ['public_profile','email'],
});
const response = await fetch(`https://graph.facebook.com/me?fields=id,name,first_name,last_name,email&access_token=${token}`);
console.log("FB graph data: ", response);
Теперь в ответе я вижу:
FB graph data: Response {
"_bodyBlob": Blob {
"_data": Object {
"blobId": "272B50CD-0E39-4949-9C9B-C7954C7DAZZZ",
"name": "me",
"offset": 0,
"size": 125,
"type": "application/json",
},
},
"_bodyInit": Blob {
"_data": Object {
"blobId": "272B50CD-0E39-4949-9C9B-C7954C7DAXXX",
"name": "me",
"offset": 0,
"size": 125,
"type": "application/json",
},
},
"headers": Headers {
"map": Object {
"access-control-allow-origin": "*",
"alt-svc": "h3-23=\":443\"; ma=3600",
"cache-control": "private, no-cache, no-store, must-revalidate",
"content-length": "125",
"content-type": "application/json; charset=UTF-8",
"date": "Wed, 30 Oct 2019 15:37:08 GMT",
"etag": "\"be4885c936a31bf6860727f125eff6a728d9a24a\"",
"expires": "Sat, 01 Jan 2000 00:00:00 GMT",
"facebook-api-version": "v4.0",
"pragma": "no-cache",
"strict-transport-security": "max-age=15552000; preload",
"x-app-usage": "{\"call_count\":4,\"total_cputime\":0,\"total_time\":0}",
"x-fb-debug": "l0rdXqvG+3XVW/vlWWwd5xStAdDeTeydDXtJQctnXXX9up+Y3Uc53qpzACRUN6uLximRd+m/8XXXX==",
"x-fb-request-id": "Ah8mfwuPR1ZvXXX_QJBW",
"x-fb-rev": "1001360827",
"x-fb-trace-id": "CoAjd8es92S",
},
},
"ok": true,
"status": 200,
"statusText": undefined,
"type": "default",
"url": "https://graph.facebook.com/me?fields=id,name,first_name,last_name,email&access_token=EAAGqbkI1rUcBAApAXuowpF6sqf1NeEfkZB7RhpNiAPV6g7GOpmP8hZxxxxxxx",
}
Все примеры, которые я видел, предполагают, что я должен увидеть имя пользователя и другие поля по умолчанию для общедоступного профиля + адрес электронной почты. Этот токен хорош, потому что я использую его позже с пулом идентификации AWS Cognito, настроенным с помощью провайдера Facebook, и я получаю правильные кредиты AWS (что означает, что AWS проверил его правильно). Просто я хотел бы узнать имя моих пользователей - я могу получить его только из фейсбука ...
Что мне не хватает?
Спасибо,