您好我不知道如何从getprovidersData()获取twitter屏幕名称,因为它返回一个List,当我迭代List时,它会提供类似
的数据D / Twitter Data :: com.google.android.gms.internal.zzafv@4f19ea4 D / Twitter Data :: com.google.android.gms.internal.zzafv@eb40d
List proData = mFirebaseUser.getProviderData();
for (Object ui:proData
) {
Log.d("Twitter Data:",ui.toString());
}
我如何从中获取推特使用屏幕名称。
谢谢!
答案 0 :(得分:1)
您需要4件事来获取Twitter用户的详细信息,包括screen_name。
1和2您可以从Twitter应用程序仪表板获得。
当用户使用firebase auth成功登录时,将在signInSuccessWithAuthResult
对象的authResult
回调函数中给出3和4。 这4个应该进入GET api调用的标头请求-> https://api.twitter.com/1.1/account/verify_credentials.json
https://www.npmjs.com/package/twitter
答案 1 :(得分:0)
此代码源自documentation中提供的示例。在您使用Twitter登录后,请尝试运行它,以查看显示名称是否是您期望的屏幕名称。
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
for (UserInfo profile : user.getProviderData()) {
if (profile.getProviderId().equals(TwitterAuthProvider.PROVIDER_ID)) {
// UID specific to the provider
String uid = profile.getUid();
// Name, email address, and profile photo Url
String name = profile.getDisplayName();
String email = profile.getEmail();
Uri photoUrl = profile.getPhotoUrl();
Log.i("DEBUG", String.format("uid=%s name=%s email=%s url=%s",
uid, name, email, photoUrl));
}
}
}
答案 2 :(得分:0)
或者只是在您的标头中使用您的 Bearer 调用 https://api.twitter.com/2/users/$userID