Firebase + Twitter OAuth на Android больше не работает - PullRequest
0 голосов
/ 19 ноября 2018

Несколько месяцев назад я интегрировал Firebase + Twitter OAuth в свое приложение для Android.Недавно я проводил рефакторинг приложения и заметил, что аутентификация Firebase + Twitter, которая была должным образом протестирована ранее, больше не работает на всех моих устройствах и с разными учетными записями.С тех пор я пробовал многочисленные обходные пути, такие как:

  • полностью заново создать приложение в консоли Twitter Dev;
  • set ONLY twittersdk: // в качестве URL для обратного вызова в консоли Twitter Dev;
  • еще раз проверьте все руководства Twitter / Firebase и убедитесь, что в проекте есть весь необходимый код;
  • инициализируйте Twitter SDK различными способами(см. ниже) и т. д.

Я не вижу смысла перечислять здесь код, связанный с аутентификацией, поскольку он очень похож на общие примеры и фрагменты, такие как https://firebase.google.com/docs/auth/android/twitter-login?authuser=0 и https://github.com/twitter/twitter-kit-android/wiki/Getting-Started и https://github.com/twitter/twitter-kit-android/wiki/Log-In-with-Twitter.И, конечно же, все это было проверено, когда работала аутентификация Twitter + Firebase.

Исключения, которые я получаю, зависят от способа инициализации Twitter SDK.

Например, когда я инициализирую Twitter в приложенииonCreate() как это:

Twitter.initialize(this)

Я получаю

com.google.firebase.FirebaseException: An internal error has occurred. 
[ Failed to get successful verify_credentials response:{"errors":[{"code":32,"message":"Could not authenticate you."}]} ]
    at com.google.firebase.auth.api.internal.zzds.zzb(Unknown Source)
    at com.google.firebase.auth.api.internal.zzew.zza(Unknown Source)
    at com.google.firebase.auth.api.internal.zzeo.zzc(Unknown Source)
    at com.google.firebase.auth.api.internal.zzep.onFailure(Unknown Source)
    at com.google.firebase.auth.api.internal.zzdy.dispatchTransaction(Unknown Source)
    at com.google.android.gms.internal.firebase_auth.zzb.onTransact(Unknown Source)
    at android.os.Binder.execTransact(Binder.java:453)

Кроме того, когда я инициализирую Twitter в приложении onCreate(), как это:

val config = TwitterConfig.Builder(this)
                .logger(DefaultLogger(Log.DEBUG))
                .twitterAuthConfig(TwitterAuthConfig("CONSUMER_KEY", "CONSUMER_SECRET"))
                .debug(true)
                .build()
Twitter.initialize(config)

Iget

E/Twitter: Authorization completed with an error
    com.twitter.sdk.android.core.TwitterAuthException: Authorize failed.
        at com.twitter.sdk.android.core.identity.AuthHandler.handleOnActivityResult(AuthHandler.java:98)
        at com.twitter.sdk.android.core.identity.TwitterAuthClient.onActivityResult(TwitterAuthClient.java:143)
        at com.twitter.sdk.android.core.identity.TwitterLoginButton.onActivityResult(TwitterLoginButton.java:131)
        at com.kkaun.mediator.ui.user.login.providers.TwitterSignInActivity.onActivityResult(TwitterSignInActivity.kt:90)
        at android.app.Activity.dispatchActivityResult(Activity.java:6572)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3710)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3757)
        at android.app.ActivityThread.-wrap16(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5452)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)

W/TwitterSignInActivity: twitterLogin:failure
    com.twitter.sdk.android.core.TwitterAuthException: Authorize failed.
        at com.twitter.sdk.android.core.identity.AuthHandler.handleOnActivityResult(AuthHandler.java:98)
        at com.twitter.sdk.android.core.identity.TwitterAuthClient.onActivityResult(TwitterAuthClient.java:143)
        at com.twitter.sdk.android.core.identity.TwitterLoginButton.onActivityResult(TwitterLoginButton.java:131)
        at com.kkaun.mediator.ui.user.login.providers.TwitterSignInActivity.onActivityResult(TwitterSignInActivity.kt:90)
        at android.app.Activity.dispatchActivityResult(Activity.java:6572)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3710)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3757)
        at android.app.ActivityThread.-wrap16(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5452)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)

Как мы все знаем, Twitter прекратил поддержку Twitter Kit 31 октября 2018 года, как упомянуто здесь https://blog.twitter.com/developer/en_us/topics/tools/2018/discontinuing-support-for-twitter-kit-sdk.html. Так что мне интересно, может ли этот факт быть причиноймоя проблема?

...