【问题标题】:Failed to get request token on Android M running Devices在运行 Android M 的设备上获取请求令牌失败
【发布时间】:2016-01-18 14:46:46
【问题描述】:

在 Android 6.0 预览设备中登录 Twitter 失败。它在所有其他设备上工作正常。

下面的代码用于通过twitter初始化fabric。

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)

【问题讨论】:

  • 开发者控制台中的某些时候你验证了 wia 电子邮件这些是从你这边确认的吗??并检查虚拟和真实设备...!!!

标签: twitter twitter-fabric


【解决方案1】:

在密钥和访问令牌选项卡中创建您的访问令牌

【讨论】:

    【解决方案2】:

    我有同样的问题并解决了。在我的情况下,我需要在 Twitter 开发帐户中设置回调 url。

    Twitter dev account->setting->callBack url(设置任何有效的url,比如 www.google.com)

    【讨论】:

    • 我已经做到了。我得到了以下错误:com.twitter.sdk.android.core.TwitterAuthException:无法获取请求令牌此错误的原因是我没有安装 twitter 应用程序。如果我那么它工作正常我该怎么办?
    • @Rajat 同样的问题在这里和 SDK.M 设备只有............请任何人帮助.............
    【解决方案3】:

    我也面临同样的问题(不久前)。

    转至Twitter Application Management ->
    单击您当前正在使用的“应用程序”->
    点击“设置”标签 ->
    1) 回调网址:插入任何有效的网址(如您网站的主页)
    2) 开启回调锁定(建议开启回调锁定,确保应用不会覆盖回调url):验证是否未勾选

    如果 twitter 应用程序 未 被发现,Twitter Kit 会尝试使用 webview。
    Twitter 工具包的 webview 部分 需要覆盖 回调 url。

    关于 Callback Url 字段的信息明确指出:要限制您的应用程序使用回调,请将此字段留空。
    所以,我们需要写下任何有效的 url :)

    参考:
    个人经验获得的时刻回来:P
    Failed to get request token

    【讨论】:

      【解决方案4】:

      在这个解决方案之前,我尝试了一个有效的网址(甚至google.com)。但是,就我而言,它不起作用。

      然后我找到了这个对我很有效的解决方案:

      第 1 步: 登录 https://apps.twitter.com/ 并选择 设置 选项卡,然后将 twittersdk:// 添加为回调 URL,从而转到您的 Twitter 应用程序设置。 (我在 lib 类中找到它。)

      第 2 步:保存您的更新。

      第 3 步:再次尝试您的应用。

      【讨论】:

      • 请不要在多个旧问题中继续发布相同的答案。如果您认为它们是重复的,请标记为重复。stackoverflow.com/questions/30511345/…
      • 目的是让用户即使访问此帖子也能得到答案。
      • @Shree 和问题不同,但解决方案对于当前场景是相同的。但未来可能会有所不同
      • @Moinkhan 谢谢
      • 谢谢@Moinkhan
      【解决方案5】:
      1. 确保您的回调网址已输入。
      2. 确保您的设备(Android、iOS)上安装了 Twitter 应用程序

      希望对您有所帮助。它对我很有效 (https://www.assetstore.unity3d.com/en/#!/content/79450)。

      【讨论】:

      • 设备上不能安装 Twitter,它会打开网页视图
      【解决方案6】:

      这是 twitter auth 在没有应用程序的情况下无法工作的最佳解决方案。我尝试使用有效的 firebase auth 回调 url 但不工作,我也搜索了很多这个问题但没有得到确切的解决方案,@Moinkhan 解决方案对我有用并节省了我的时间,感谢 @ Moinkhan,它有效

      在此解决方案之前,我尝试了有效的 url,甚至 google.com。但就我而言,它不起作用。

      我找到了下面的解决方案,它对我很有效。

      第 1 步:转到您的 twitter 应用设置 https://apps.twitter.com/ >> 选项卡设置 >> 将此文本“twittersdk://”填写到您的回调 url 字段(我在 lib 类中找到它)

      第 2 步:保存更新

      第 3 步:再次检查您的应用

      【讨论】:

      • 你拯救了我的一天。我想知道如果没有“twittersdk://”这行不通?您在使用 Firebase 用户界面吗?
      【解决方案7】:

      这是你需要做的事情

      Twitter 开发者账号->设置->callBack url

      然后,如果您正在为 android 做(意味着使用 android 设备登录)

      twittersdk://
      (在回调中添加)

      如果你是为 iOS 做的(意味着使用苹果设备登录)

      twitterkit-CONSUMERKEY://
      (在回调中添加)

      然后点击更新设置按钮 它会工作:)

      【讨论】:

        【解决方案8】:

        我在iOS上遇到了同样的问题,找到了提示here:
        显然,现在需要将回调 URL 设置为

        http://twitter-oauth.callback

        我这样做了,登录又可以了。

        【讨论】:

          【解决方案9】:

          在经历了很多解决方案之后,一个对我有用的是 只需在 twitter 应用的设置部分添加 - twittersdk:// 作为另一个回调 URL。

          【讨论】:

            猜你喜欢
            • 2011-08-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-23
            • 2017-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多