【问题标题】:How to access Twitter REST API v1.1 using curl?如何使用 curl 访问 Twitter REST API v1.1?
【发布时间】:2014-07-29 21:00:31
【问题描述】:

使用“测试 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 请求。但只是将上述命令中的“microsoft”与“google”交换会导致错误:

{"errors":[{"message":"Could not authenticate you","code":32}]}

为什么这是不可能的,我怎样才能让它发挥作用?


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


这是“官方”答案:Authorizing a request

【问题讨论】:

    标签: curl twitter oauth twitter-oauth


    【解决方案1】:

    当您更改参数时,OAuth signature base string 确实会更改,因此 oauth_signature 标头也会更改。这就是为什么更改参数时不能重复使用签名的原因。

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

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

    【讨论】:

    • 但我也可以计算一个新的签名,对吧?我猜 SHA 1-HMAC 只是一个哈希算法。
    • 您可以根据需要自行创建签名,该过程记录在 Twitter 的 API 文档dev.twitter.com/docs/auth/creating-signature
    • 谢谢,我总是尽量避免外部依赖。如果可以直接在 curl 中完成,我几乎可以用任何语言完成
    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多