簡體   English   中英

如何在 Firebase 身份驗證中獲取 Twitter 屏幕名稱

[英]How to get twitter screen name in Firebase auth

嗨,我不知道如何從 getprovidersData() 獲取 twitter 屏幕名稱,因為它正在返回一個列表,當我迭代列表時,它給出的數據如下

D/Twitter 數據:: com.google.android.gms.internal.zzafv@4f19ea4 D/Twitter 數據:: com.google.android.gms.internal.zzafv@eb40d

    List proData = mFirebaseUser.getProviderData();
    for (Object ui:proData
         ) {
        Log.d("Twitter Data:",ui.toString());
    }

我將如何從中獲得 twitter 使用屏幕名稱。

謝謝!

此代碼源自文檔中提供的示例。 請在使用 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));
        }
    }
}

您需要 4 件事來獲取 twitter 用戶詳細信息,包括 screen_name。

  1. 消費者密鑰
  2. 消費者秘密
  3. 訪問令牌
  4. 令牌秘密

1 和 2 您可以從 twitter 應用儀表板獲得。

當用戶使用 firebase auth 成功登錄時,將在authResult對象中的signInSuccessWithAuthResult回調函數中給出 3 和 4。 這 4 個應該進入 GET api 調用的標頭請求 -> https://api.twitter.com/1.1/account/verify_credentials.json

更多信息: https : //developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-account-verify_credentials

要在 node.js 應用程序中使用:

https://www.npmjs.com/package/twitter

要使用郵遞員進行測試:

在此處輸入圖片說明

或者只需在標題中使用您的 Bearer 調用https://api.twitter.com/2/users/$userID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM