簡體   English   中英

Twitter 在我的 android 應用程序中僅在最新的 Twitter 應用程序上登錄失敗

[英]Twitter Login failed on only latest Twitter app in my android app

我的應用程序在 PlayStore 上發布,並且 Twitter 登錄一直運行良好。

但是今天,我發現Twitter 登錄不起作用!

我的應用程序使用 Twitter SDK,而不是 Firebase Auth。

implementation "com.twitter.sdk.android:twitter-core:3.3.0"

登錄代碼為:

TwitterAuthClient.authorize(activity, object : Callback<TwitterSession>() {
    override fun success(result: Result<TwitterSession?>) {

        // 'authorize' success and `result.data?.authToken` is not null but 
        // `result.data?.authToken?.token` and `result.data?.authToken?.secret` are null

        TwitterCore.getInstance().apiClient.accountService.verifyCredentials(false, false, true).enqueue(object : Callback<User>() {
            override fun success(result: Result<User?>) {

            }
        
            override fun failure(exception: TwitterException) {
                // 403 Error! - com.twitter.sdk.android.core.TwitterApiException: HTTP request failed, Status: 403
            }
        })
    }

    override fun failure(e: TwitterException) {
        
    }
})
  1. 如果設備上沒有安裝Twitter App,在Web瀏覽器上處理twitter登錄沒有問題。 (登錄成功)
  2. 如果設備上安裝了舊的Twitter App,在Twitter App上處理twitter登錄沒有問題。 (登錄成功)
  3. 如果設備上安裝了最新的Twitter App( 9.54.0-release.0 )twitter登錄在Twitter應用程序上處理並出現問題

我的應用程序沒有改變任何東西。 我認為最新的 Twitter 應用程序有一些問題。 但我不知道如何處理。

我的同事也檢查了這個問題。 他的設備上有舊版本的 Twitter 應用程序9.32.0-release.0 當時 Twitter 登錄工作正常。 在他將 Twitter 應用程序更新為9.54.0-release.0后,Twitter 登錄不起作用。


[更新]

我創建了一個新的示例應用程序並正在進行測試。 但是我的新示例應用程序運行良好(twitter 登錄運行良好。)。 我發布的應用程序仍然無法運行! (無法使用推特登錄)。

官方 Twitter 應用程序( 9.54.0-release.0 )不會將令牌信息返回到我發布的應用程序。 但它會將令牌信息返回到我的新示例應用程序。 我很困惑。

這兩個應用程序使用相同的 SDK。 (implementation com.twitter.sdk.android:twitter-core:3.3.0 ) And the kotlin codes are identical. 他們使用相同的customer keycustomer secret

我發現這很奇怪。

新示例應用的 twitter 登錄 UI 為: 在此處輸入圖像描述

但是我發布的應用程序的 twitter 登錄界面是: 在此處輸入圖像描述

看起來不一樣? 為什么它們不同?

相同的 SDK,相同的代碼,相同的消費者密鑰/秘密!

請給我一些提示好嗎? 什么時候出現第二張截圖? 什么條件? 請問我可以知道嗎?

我檢查了twitter-kit-android (Android Twitter SDK)。

當我的應用程序可以在設備上搜索com.twitter.android時,會顯示第一個屏幕截圖。 當我的應用程序無法在設備上搜索com.twitter.android時,會顯示第二個屏幕截圖。

我發布的應用程序有queries標簽:

<queries>
    <package android:name="com.twitter.android" />
</queries>

因此,我的應用程序可以搜索twitter應用程序。

The twitter sdk checks that if the app can search com.twitter.android then start SingleSignOnActivity , and it doesn't return token information. 但是如果應用程序無法搜索com.twitter.android然后啟動OAuthActivity ,它會返回令牌信息。

但即使我刪除查詢和

我在更新到 Twitter app 9.54.0-release.0時也遇到了這個問題,我無法從SingleSignOnActivity獲取令牌。 昨天 Twitter 已經發布9.54.1-release.0 ,新版本解決了這個問題,你可以從SingleSignOnActivity獲取令牌,所以我的實現是當我的應用程序無法獲取令牌時,我會顯示一個對話框通知用戶更新 Twitter 應用程序最新版本,然后嘗試重新登錄。

我認為搜索 Twitter 應用程序來自twitter-kit-android ,因此當您從應用程序中刪除查詢時它不起作用。 https://github.com/twitter-archive/twitter-kit-android/blob/02ea78c269ec50161d4bb565441f0fef74fc72b8/twitter-core/src/main/java/com/twitter/sdk/android/core/identity/SSOAuthHandler.java#L151

暫無
暫無

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

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