【问题标题】:Twitter Authorization推特授权
【发布时间】:2016-11-04 16:54:15
【问题描述】:

2 天来,我尝试向 Twitter 发出 unirest 请求(我必须使用它),但我没有从我做错的其他事情中得到良好的反馈。

这是我的要求:

    HttpResponse request = Unirest.post( "https://api.twitter.com/1.1/account/settings.json" )
            .header( "Authorization",
                    "oauth_consumer_key=\"XXX\"," +
                            "oauth_token=\"XXX\"," +
                            "oauth_signature=\"XXX\"" +
                            "oauth_nonce=\"XXX\"," +
                            "oauth_signature_method=\"HMAC-SHA1\"," +
                            "oauth_timestamp=\"1467448738\"," +
                            "oauth_version=\"1.0\","
            )
            .header( "Content-Type", "application/json" )
            .header( "accept", "application/json" )
            .header( "X-Target-URI", "https://api.twitter.com" )
            .header( "Host", "api.twitter.com" )
            .header( "Connection", "Keep-Alive" ).asJson();

我得到了

{"errors":[{"code":215,"message":"Bad Authentication data."}]}

有了这个页面很容易做到 https://apigee.com/console/twitter 但我明白了 oauth_timestamp、oauth_nonce、oauth_signature 每次都是随机生成的。 (我必须以某种方式生成它们吗?)

http://quonos.nl/oauthTester/ - 这个网站正在帮助我检查 oauth 签名

并且为我生成了这个 https://dev.twitter.com/oauth/tools/signature-generator/ 签名基本字符串、授权标头、cURL 命令

我还有来自 https://apps.twitter.com/app/ 的密钥 消费者密钥(API 密钥) 消费者秘密(API 秘密) 访问令牌 访问令牌秘密 (以及访问读取、写入和直接消息)

但每次我遇到错误。

那么我的代码有什么问题?我错过了什么吗?

谢谢!

【问题讨论】:

    标签: java rest twitter oauth unirest


    【解决方案1】:

    oauth_timestamp 不是随机生成的,它是当前时间。例如你上面的例子是(用http://www.onlineconversion.com/unix_time.htm验证)

    Sat, 02 Jul 2016 08:38:58 GMT
    

    oauth_nonce 是随机的,如下面的帮助页面中所述,例如“base64编码32字节随机数据”。

    oauth_signature 是根据您的请求参数计算的,有时是帖子正文、客户端令牌/秘密等。

    https://dev.twitter.com/oauth/overview/authorizing-requests https://dev.twitter.com/oauth/overview/creating-signatures

    这是一些用于签署请求的示例代码 https://github.com/yschimke/okurl/blob/release/1.4/src/main/java/com/baulsupp/oksocial/services/twitter/Signature.java

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-16
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    相关资源
    最近更新 更多