Не удалось получить токен запроса на Android M под управлением устройств

Ошибка входа в Twitter на устройствах Android 6.0 для предварительного просмотра. Работает нормально на всех других устройствах.

Код ниже используется для инициализации матрицы с помощью твиттера.

Ключи 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)

8 ответов

Перед этим решением я попробовал действительный URL и даже google.com тоже. Но для моего случая это не сработало.

Я нашел решение ниже, и оно хорошо работает для меня.

Шаг 1: перейдите к настройке приложения Twitter https://apps.twitter.com/ >> Настройки вкладки >> Заполните этот текст "twittersdk: //" в поле URL обратного вызова (я нашел его в классе lib)

Шаг 2. Сохраните обновление

Шаг 3: проверьте приложение снова

Вот что нужно сделать

Twitter dev account->setting->callBack url

а затем, если вы делаете для Android (означает, что вход в систему для устройств Android)

twittersdk: //
(добавить это в обратном вызове)

если вы делаете для iOS (означает вход в систему для устройств Apple)

twitterkit-CONSUMERKEY: //
(добавить это в обратном вызове)

и нажмите кнопку обновления настроек, это будет работать:)

У меня такая же проблема и решена. В моем случае мне нужно установить URL обратного вызова в учетной записи Twitter Dev.

Twitter dev account-> setting-> callBack url (установите любой действительный URL-адрес, например www.google.com)

Это лучшее решение, когда твиттер не работает без приложения. Я попытался с действительным URL обратного вызова Firebase Auth, но не работает, и я также много раз ищу эту проблему, но не получаю точное решение, решение @Moinkhan помогло мне и сэкономило мое время, благодаря @Moinkhan, оно работает

Перед этим решением я попробовал действительный URL и даже google.com тоже. Но для моего случая это не сработало.

Я нашел решение ниже, и оно хорошо работает для меня.

Шаг 1: перейдите к настройке приложения Twitter https://apps.twitter.com/ >> Настройки вкладки >> Заполните этот текст "twittersdk://" в поле URL обратного вызова (я нашел его в классе lib)

Шаг 2. Сохраните обновление

Шаг 3: проверьте приложение снова

Я столкнулся с той же проблемой (всего несколько минут назад).

Перейти в Twitter Управление приложениями ->
Нажмите на "приложение", над которым вы сейчас работаете ->
Нажмите на вкладку "Настройки" ->
1) URL обратного вызова: введите любой действительный URL (например, домашнюю страницу вашего сайта)
2) Включить блокировку обратного вызова (рекомендуется включить блокировку обратного вызова, чтобы приложения не могли перезаписать URL-адрес обратного вызова): убедитесь, что он не отмечен

Twitter Kit пытается использовать веб-просмотр, если приложение Twitter не найдено.
Часть веб-просмотра комплекта Twitter должна переопределить URL обратного вызова.

Информация о поле Callback Url четко гласит: чтобы запретить вашему приложению использовать обратные вызовы, оставьте это поле пустым.
Итак, нам нужно записать любой действительный URL:)

Ссылка:
Личный опыт получил моменты назад:P
Не удалось получить токен запроса

Пройдя через множество решений, один из них, который мне помог, просто добавьте - twittersdk: // в качестве еще одного URL-адреса обратного вызова в разделе настроек вашего приложения для Twitter.

У меня была такая же проблема на iOS, и нашел подсказку здесь:
По-видимому, теперь требуется установить URL обратного вызова в

http://twitter-oauth.callback

Что бы я ни сделал, логин снова работает.

Создайте свой токен доступа на вкладке "Ключ и токен доступа"

  1. Убедитесь, что ваш URL-адрес обратного вызова введен.
  2. Убедитесь, что на вашем устройстве установлено приложение Twitter (Android, iOS)

Надеюсь, это поможет. Это хорошо работает для меня ( https://www.assetstore.unity3d.com/en/).

Другие вопросы по тегам