我在Settings /..../ Keys and Access Tokens页面中生成了Access Tokens,现在有了
-
消费者密钥
-
消费者密钥
-
所有者ID(即使这可能已经生成)
-
访问令牌
-
访问令牌秘密
并使用休息客户端测试是否能够使用此api终点提取最新的3个状态
https://api.twitter.com/1.1/statuses/user_timeline.json?user_id=userIdHere&count=3
以及以下 Headers
-
接受:/
-
连接:关闭
-
User-Agent:OAuth gem v0.4.4
-
Content-Type:application / x-www-form-urlencoded
-
内容长度:76
-
主持人:api.twitter.com
-
授权:OAuth
-
oauth_consumer_key =
-
oauth_signature =
-
oauth_signature_method =
-
oauth_timestamp =
-
oauth_token =
-
oauth_version =
很明显,终点地址(上面)中的'userIdHere'被我的用户名替换(我知道我也可以使用我的user_id,但这不是重点)以及'授权'值代替实际值 . 这就是我的问题所在......
What is the mapping for each of the 'oauth...' authorization parameters to their associated Twitter generated and provided Token or key(s) (which were mention near the top of the post)?
我不断收到“400 Bad Request”回复,并认为授权是失败的,因为关键展示位置的排列不正确 . 我不知道“oauth ...”的 Value 取决于哪个值
最后,'Authorization'参数 Headers 的结构如下(根据Twitter示例中的说明)作为一个行字符串值
的OAuth oauth_consumer_key = “xvz1evFS4wEEPTGEFPHBog”,oauth_nonce = “kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg”,oauth_signature = “tnnArxj06cWHq44gCs1OSKk%2FjLY%3D”,oauth_signature_method = “HMAC-SHA1”,oauth_timestamp = “1318622958”,组oauth_token = “370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb”,oauth_version = “1.0” )
我只是想使用GET来获取最后3种状态而无法使用 . 此外,我打算将值切换为环境变量,但这并不重要 .
UPDATE 现在使用Postman,它在绘图方面做得更好,但现在正在使用
{
“errors”:[{“code”:32,“message”:“无法验证您的身份 . ” }]}
1 回答
对于Postman部分,请确保在发送之前将Timestamp和nonce留空并点击“更新请求” . 这将生成时间戳和nonce - 否则每次都会获得授权失败 . 我只是尝试使用我的twitter API凭证,它可以工作 .
对于Oauth gem代码,我觉得很奇怪你有一个
Content-Type
和一个Content-Length
标头用于GET
请求 . 看起来400 Bad request
可能是因为您试图对仅支持GET
的 endpoints 执行POST
. 确实,当我尝试对该 endpoints 进行POST
时,它会告诉我 .所以400实际上是好消息 - 这意味着授权有效,你只是以错误的方式调用API .