使用“测试OAuth”功能(应用程序设置)我可以为指定的API请求生成完全设置的curl命令:
curl --get 'https://api.twitter.com/1.1/followers/ids.json'
--data 'count=10&cursor=-1&screen_name=microsoft'
--header 'Authorization: OAuth
oauth_consumer_key="123consumer",
oauth_nonce="123nonce",
oauth_signature="123signature%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1402309080",
oauth_token="123-token",
oauth_version="1.0"'
--verbose
这正是我想要做的,但有不同的API请求。但只是在上面的命令中用“google”交换“microsoft”会导致错误:
{"errors":[{"message":"Could not authenticate you","code":32}]}
为什么这不可能,我怎样才能使它发挥作用?
据我所知,OAuth授权请求所需的全部是下图中步骤G中列出的oauth-key /值:
这是“官方”答案:Authorizing a request
答案 0 :(得分:5)
更改参数后,OAuth signature base string会发生变化,因此oauth_signature
标题也会发生变化。这就是为什么在更改参数时无法重复使用签名的原因。
如果您想查看针对Twitter API的任何特定请求的curl请求,请查看OS X的STTwitter库。演示项目包括将show you OAuth的GUI客户端请求卷曲格式。
现在,如果您的目标只是从命令行向Twitter发出请求,请查看twurl这是Twitter API的命令行客户端。