gpt4 book ai didi

node.js - 如何从 firebase auth 正确获取 Twitter screenName?

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:09 25 4
gpt4 key购买 nike

点击这些链接 https://firebase.google.com/docs/auth/web/manage-users#update_a_users_profilehttps://firebase.google.com/docs/auth/web/manage-users#get_a_users_provider-specific_profile_information

我能够验证用户身份并使用他们的 Twitter 帐户登录。但是,我想获取用户的 screenName 。我将如何做到这一点?

我检查了一些网络请求,并看到了 screenName 属性。我检查了 onAuthStateChanged ,它返回 user 属性,但没有 screenName

最佳答案

我需要从 Node 执行此操作,但是,Google/Firebase Auth 不会存储用户的 Twitter 句柄(至少无法通过 firebase-admin 访问它)。

但是,正如问题所指出的,他们确实使 Twitter uid 可以访问。这样,您就可以随后调用 Twitter 的 API 通过用户的 uid 来获取用户,结果将返回句柄(又名用户名):

import { TwitterApi } from 'twitter-api-v2';
import { auth } from 'firebase-admin';
const BEARER = process.env['TWITTER_BEARER_TOKEN'] as string;

const logTwitterHandleFromUid = async (googleUid: string): Promise<void> => {

// get Google Auth information associated with the target user
const { providerData } = await auth().getUser(googleUid);

// pull out the Twitter information
const twitter = providerData.find((p) => p.providerId.includes('twitter'));

if (!twitter) {
console.error('User does not have a linked Twitter account')
process.exit(1)
}

const details = await new TwitterApi(BEARER).v2.user(twitter.uid);

// pull out the Twitter handle
const twitter_handle = details.data.username;

return console.log(twitter_handle);
};

关于node.js - 如何从 firebase auth 正确获取 Twitter screenName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51823032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com