无法在运行设备的Android M上获取请求令牌

时间:2015-10-20 04:49:50

标签: twitter twitter-fabric

Android 6.0预览设备中的Twitter登录失败。它在所有其他设备上运行良好。

以下代码用于使用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)

9 个答案:

答案 0 :(得分:18)

这是您需要做的事情

Twitter开发者帐户->设置->回调网址

,然后如果您要使用android(意味着使用android设备登录)

  

twittersdk://
  (将此添加到回调中)

如果您要使用iOS(意味着使用Apple设备登录)

  

twitterkit-CONSUMERKEY://
  (将此添加到回调中)

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

答案 1 :(得分:16)

在此解决方案之前,我尝试了有效网址(甚至是google.com)。但是,就我而言,它没有用。

然后我找到了这个解决方案,对我来说效果很好:

第1步:通过登录https://apps.twitter.com/并选择设置标签转到您的Twitter应用设置,然后添加{{1作为回调网址。 (我在lib课程中找到了它。)

第2步:保存更新。

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

答案 2 :(得分:8)

我有同样的问题并解决了。在我的情况下,我需要在twitter dev帐户中设置回调网址。

  

Twitter开发帐户 - >设置 - > callBack网址(设置任何有效的网址,如   www.google.com)

答案 3 :(得分:7)

这是没有应用程序时Twitter身份验证不起作用的最佳解决方案。我尝试使用有效的firebase auth回调URL,但无法正常工作,我也搜索了很多问题,但未获得确切的解决方案, @Moinkhan 解决方案为我工作,并节省了时间,这要感谢 @ Moinkhan ,有效

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

我发现以下解决方案,对我来说很好。

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

第2步:保存更新

第3步:再次签出您的应用

答案 4 :(得分:4)

我正面临同样的问题(只是片刻之后)。

转到Twitter Application Management - >
点击您当前正在使用的“应用” - >
点击“设置”标签 - >
1)回拨网址:插入任何有效的网址(如您网站的主页)
2)启用回叫锁定(建议启用回叫锁定以确保应用无法覆盖回调网址):确认未选中

  

如果找到 twitter app ,Twitter Kit会尝试使用 webview 。   
Twitter工具包的 webview部分需要覆盖 回调网址。   
  有关回调网址字段的信息明确指出:要限制您的应用使用回调,请将此字段留空。   
所以,我们需要写下任何有效的网址:)

参考:
回顾个人经历:P
Failed to get request token

答案 5 :(得分:0)

在密钥和访问令牌标签中创建您的访问令牌

答案 6 :(得分:0)

我在iOS上遇到了同样的问题,并发现了一个提示here
显然,现在需要将“回调URL”设置为

http://twitter-oauth.callback

发现我这样做了,登录可以再次使用。

答案 7 :(得分:0)

经过许多解决方案后,对我有用的是 只需在Twitter应用程序的设置部分添加- twittersdk:// 作为另一个回调URL。

答案 8 :(得分:-1)

  1. 确保已输入您的回叫网址。
  2. 确保您的设备(Android,iOS)上已安装Twitter应用程序

希望此帮助。它对我来说很好(https://www.assetstore.unity3d.com/en/#!/content/79450)。