Не удалось получить токен запроса на 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
Что бы я ни сделал, логин снова работает.
Создайте свой токен доступа на вкладке "Ключ и токен доступа"
- Убедитесь, что ваш URL-адрес обратного вызова введен.
- Убедитесь, что на вашем устройстве установлено приложение Twitter (Android, iOS)
Надеюсь, это поможет. Это хорошо работает для меня ( https://www.assetstore.unity3d.com/en/).