如何使用curl访问Twitter REST API v1.1?

Raf*_*ael 4 twitter curl oauth twitter-oauth

使用"测试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 
Run Code Online (Sandbox Code Playgroud)

这正是我想要做的,但有不同的API请求.但只是在上面的命令中用"google"交换"microsoft"会导致错误:

{"errors":[{"message":"Could not authenticate you","code":32}]}
Run Code Online (Sandbox Code Playgroud)

为什么这不可能,我怎样才能使它工作?


据我所知,OAuth授权请求所需的是下图中步骤G中列出的oauth-key /值:

图表


这是"官方"答案:授权请求

nst*_*nst 5

更改参数时,OAuth签名基本字符串确实会更改,因此oauth_signature标题也会更改.这就是为什么在更改参数时无法重复使用签名的原因.

如果您想查看针对Twitter API的任何特定请求的curl请求,请查看OS X 的STTwitter库.演示项目包括一个GUI客户端,它将以curl格式显示 OAuth请求.

现在,如果您的目标只是从命令行向Twitter发出请求,请查看twurl,它是Twitter API的命令行客户端.