Firebase Auth: возможно ли увидеть твиттер ID пользователя? - PullRequest
2 голосов
/ 17 мая 2019

Я только что ввел логин Twitter в свое веб-приложение Firebase.Когда пользователь успешно войдет в систему, я хотел бы видеть идентификатор пользователя в Твиттере (для обеспечения связи на основе Twitter среди пользователей).

Согласно документу (https://firebase.google.com/docs/auth/web/manage-users), информация о конкретном провайдере находится подproviderData пользователя info.

Под providerData я вижу следующее

displayName: "Satoshi Nakajima" (as I expected)
email: null (as I expected)
phoneNumber: null (as I expected)
photoURL: "https://abs.twimg.com/..." (as I expected) 
providerId: "twitter.com" (of course)
uid: "1129128..." (what is this?)

UID выглядит как уникальный идентификатор, но он отличается от идентификатора Twitter, который мы обычно используем, например,as @snakajime (который мой).

Мне интересно, почему я не вижу здесь идентификатор Twitter. Я что-то упустил? Есть ли API для получения идентификатора Twitter из этого странного uid?

Ответы [ 2 ]

2 голосов
/ 18 мая 2019

Вы можете получить его сразу после входа в систему через AdditionalUserInfo.

Вот пример с веб-API:

firebase.auth().signInWithPopup(new firebase.auth.TwitterAuthProvider())
  .then((userCredential) => {
    // Get the Twitter screen name.
    console.log(userCredential.additionalUserInfo.username);
  })
  .catch((error) => {
    // An error occurred.
  });
2 голосов
/ 17 мая 2019

Насколько мне известно, искомое имя не входит в состав OAuth Twitter, предоставляемого через Firebase, но найденный вами uid действительно является идентификатором пользователя Twitter.

Используя этот идентификатор, вы можете использовать API Twitter для получения подробной информации о пользователе, передав его в API Twitter users / show endpoint . Поскольку вы планируете предоставлять связь на основе Twitter, вам, вероятно, все равно придется использовать этот API.

например:.

GET https://api.twitter.com/1.1/users/show.json?user_id={the_uid_from_provider_data}


RESPONSE:
{
  "id": {the_uid_from_provider_data},
  "id_str": "{the_uid_from_provider_data}",
  "name": "Snakajime",
  "screen_name": "snakajime", // <--- Here is the screen name you are looking for
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...