Получение имени пользователя Facebook / электронной почты через токен доступа - PullRequest
0 голосов
/ 30 октября 2019

Я правильно отреагировал, что нативное приложение корректно получило сессионный токен, но затем при использовании его с 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 проверил его правильно). Просто я хотел бы узнать имя моих пользователей - я могу получить его только из фейсбука ...

Что мне не хватает?

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...