web-dev-qa-db-ja.com

Android M実行中のデバイスでリクエストトークンを取得できませんでした

TwitterのログインがAndroid 6.0プレビューデバイスで失敗しました。他のすべてのデバイスで正常に機能しています。

以下のコードは、Twitterでファブリックを初期化するために使用されます。

Twitter_ KEYおよびTwitter_SECRETキーは、Twitterアプリの設定から取得されました。

    TwitterAuthConfig authConfig = new TwitterAuthConfig(Twitter_KEY, Twitter_SECRET);
    Fabric.with(this, new Twitter(authConfig));

TwitterApiClientを使用したログイン中に取得したエラーログは次のとおりです。

  08-31 07:52:09.988 4692-4692/? E/Twitter: Failed to get request token
  08-31 07:52:09.988 4692-4692/? E/Twitter: com.Twitter.sdk.Android.core.TwitterApiException: 401 Authorization Required
  08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.Java:383)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.Java:220)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.Java:278)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.CallbackRunnable.run(CallbackRunnable.Java:42)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1113)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:588)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at retrofit.Platform$Android$2$1.run(Platform.Java:142)
  08-31 07:52:09.988 4692-4692/? E/Twitter: at Java.lang.Thread.run(Thread.Java:818)
  08-31 07:52:10.000 4692-4692/? E/Twitter: Authorization completed with an error
  08-31 07:52:10.000 4692-4692/? E/Twitter: com.Twitter.sdk.Android.core.TwitterAuthException: Failed to get request token
  08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Twitter.sdk.Android.core.identity.OAuthController$1.failure(OAuthController.Java:95)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Twitter.sdk.Android.core.internal.oauth.OAuth1aService$1.failure(OAuth1aService.Java:215)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Twitter.sdk.Android.core.Callback.failure(Callback.Java:45)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at retrofit.CallbackRunnable$2.run(CallbackRunnable.Java:53)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.os.Handler.handleCallback(Handler.Java:739)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.os.Handler.dispatchMessage(Handler.Java:95)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.os.Looper.loop(Looper.Java:148)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at Android.app.ActivityThread.main(ActivityThread.Java:5417)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at Java.lang.reflect.Method.invoke(Native Method)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:726)
  08-31 07:52:10.000 4692-4692/? E/Twitter: at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:616)
15
Arunkumar MG

この解決策の前に、有効なURLgoogle.comでも)を試しました。しかし、私の場合、うまくいきませんでした。

それから私はこの解決策を見つけました、それは私にとってうまくいきました:

ステップ1:https://apps.Twitter.com/ にログインし、を選択して、Twitterアプリの設定に移動します。 Settingsタブをクリックし、コールバックURLとしてtwittersdk://を追加します。 (libクラスで見つけました。)

ステップ2:更新を保存します。

ステップ3:アプリを再試行してください。

19
Moinkhan

これがあなたがする必要があることです

Twitter開発者アカウント->設定->コールバックURL

次に、Android(Androidデバイス)を使用してログインすることを意味します)

twittersdk://
(これをコールバックに追加)

iOSで実行している場合(Appleデバイス)を使用してログインすることを意味します)

twitterkit-CONSUMERKEY://
(これをコールバックに追加)

設定の更新ボタンを押すと機能します:)

19
vallabh

私は同じ問題を抱えて解決しました。私の場合、Twitter開発者アカウントでコールバックURLを設定する必要があります。

Twitter開発者アカウント->設定->コールバックURL(www.google.comなどの有効なURLを設定)

8
tej shah

これは、Twitter認証がアプリなしで機能しない場合の最良の解決策です。有効なfirebase authコールバックURLを試しましたが機能しません。また、この問題を頻繁に検索しますが、正確な解決策が得られません。@ Moinkhan解決策が私のために機能しました@ Moinkhanのおかげで、時間を節約できます。

この解決策の前に、私は有効なURLとgoogle.comも試しました。しかし、私の場合、それは機能していませんでした。

私は以下の解決策を見つけました、そしてそれは私にとってうまくいきます。

ステップ1:Twitterアプリの設定に移動します https://apps.Twitter.com/ >>タブ設定>>このテキスト「twittersdk://」をコールバックURLフィールドに入力します(見つけましたlibクラスで)

ステップ2:更新を保存する

ステップ3:アプリをもう一度チェックアウトする

7
Naveen

私は同じ問題に直面していました(ほんの少し前)。

移動 Twitterアプリケーション管理 ->
現在作業している「アプリ」をクリックします->
[設定]タブをクリック->
1)コールバックURL:有効なURLを挿入します(Webサイトのホームページなど)
2)コールバックロックを有効にする(アプリがコールバックURLを上書きできないように、コールバックロックを有効にすることをお勧めします):それがチェックされていないであることを確認します

Twitterアプリnotである場合、Twitter Kitはwebviewを使用しようとします。
Twitterキットのwebview部分オーバーライドコールバックURLである必要があります。

情報Callback Urlフィールドには次のように明記されています:アプリケーションによるコールバックの使用を制限するには、このフィールドを空白のままにします。
したがって、有効なURLを書き留める必要があります:)

参照:
個人的な経験は、少し前に取得しました:P
リクエストトークンの取得に失敗しました

4
Vinay Vissh

多くの解決策を試した後、私のために働いたのは、Twitterアプリの設定セクションにもう1つのコールバックURLとして-twittersdk://を追加することです。

0

IOSでも同じ問題が発生し、ヒントが見つかりました ここ
どうやら、コールバックURLをに設定する必要があります

http://Twitter-oauth.callback

私がそうしたので、ログインは再び機能します。

0