gpt4 book ai didi

java - 推特授权

转载 作者:行者123 更新时间:2023-12-01 09:44:42 25 4
gpt4 key购买 nike

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

这是我的要求:

    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/<+my id> 为我生成了签名基本字符串、授权 header 、cURL 命令

我还有来自 https://apps.twitter.com/app/的 key 消费者 key (API key ) 消费者 secret (API secret ) 访问 token 访问 token secret (并访问读取、写入和直接消息)

但是每次我都会收到错误。

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

谢谢!

最佳答案

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

Sat, 02 Jul 2016 08:38:58 GMT

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

oauth_signature 是根据您的请求参数(有时是帖子正文、客户端 token / secret 等)计算的。

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

关于java - 推特授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38159617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com