请求令牌上的android twitter retrieveRequestToken 401

d-m*_*man 13 android twitter4j

我正在为twitter oauth尝试以下示例应用程序.

http://www.androidsdkforum.com/android-sdk-development/3-oauth-twitter.html

private void askOAuth() {
        try {
            consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
            provider = new DefaultOAuthProvider("http://twitter.com/oauth/request_token",
                                                "http://twitter.com/oauth/access_token",
                                                "http://twitter.com/oauth/authorize");
            String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);
            Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
            this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
        } catch (Exception e) {
            Log.e(APP, e.getMessage());
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我运行以下代码时,它给出了如下异常

"oauth.signpost.exception.OAuthNotAuthorizedException:授权失败(服务器回复401).如果消费者密钥不正确或签名不匹配,就会发生这种情况."

在这条线上 String authUrl = provider.retrieveRequestToken(consumer, CALLBACK_URL);

我提供了正确的"密钥"和"秘密",Twitter是否给了我错误的密钥和秘密?

gil*_*ilm 14

我已经花了几个小时这个.似乎您必须在Twitter应用程序开发人员面板的"设置"选项卡中为回调URL设置任何值.保持默认空值会禁用动态回调网址.

我在网上找到的所有教程和所有信息都是空的.Twitter长期删除了"客户端/网站"单选按钮.

此外,OAuth会检查时钟偏差.

  • +1在回调网址中设置一些内容(例如https://dev.twitter.com)对我有用. (2认同)

Don*_*eep 8

我刚遇到同样的问题.它只出现在我的开发电话上,但在模拟器和另一部手机上,代码工作正常.在没有运气的情况下尝试了几个相关问题的解决方案后,最终我发现我没有在开机手机上设置时间和日期,开机手机中没有SIM卡.这导致SSL证书无效,OAuth请求失败,以及使用HTTPS的任何其他内容.设定时间之后问题就消失了.

  • +1,您正好在没有SIM卡的手机中设置日期和时间. (4认同)

d-m*_*man 1

终于搞定了,看看下面的帖子

android twitter outh教程回调问题