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

标签 curl twitter 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 

这正是我想要做的,但有不同的 API 请求。但是只是将上面命令中的“microsoft”与“google”交换会导致错误:
{"errors":[{"message":"Could not authenticate you","code":32}]}

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

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

chart

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

最佳答案

当您更改参数时,OAuth signature base string确实改变了,所以 oauth_signature header 也会改变。这就是为什么在更改参数时不能重用签名的原因。

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

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

关于curl - 如何使用 curl 访问 Twitter REST API v1.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118279/

相关文章:

nginx - github oauth 和 nginx 代理

php - 在 PHP 中通过 HTTP PUT 发送文件

django - 从 Django 站点的 shell 登录

bash - 使用 curl (BASH) 通过 Pingdom API 暂停 Pingdom 检查

java - 如何从 Java 中的 post 请求中提取 httponly cookie?

R twitteR 包,尽管有限制但仍获得关注者

python - 在 python 3 中为现有 WSGI 服务器创建 OAuth2.0 提供程序

Android - 如何直接将推文发布到 Twitter(没有隐式 Intent 或其他应用程序)?

javascript - 用于社交共享的 Vue 应用程序元标记

google-app-engine - Azure AD 与 GAE 集成