如何在unix中通过curl调用Twitter API

时间:2016-08-12 07:08:53

标签: api curl twitter

我想从Twitter REST API中提取数据。我创建了消费者密钥,秘密和访问令牌,秘密。我尝试过“测试OAuth”,它会生成一个CURL命令但是如果我更改了任何一个参数,那么它会给出以下错误。 消息:{“errors”:[{“code”:32,“message”:“无法验证您。”}}}

现在我想在shell脚本中使用CURL为不同的screenNames调用twitter API。

我想要一个示例命令,如下所述

curl --get'https://api.twitter.com/1.1/statuses/user_timeline.json' - data'count = 2& screen_name = aswin'APPKEY:“xxxxxx”,Acesstoken:“yyyyyyyy”

提前致谢。

此致 Aswin

3 个答案:

答案 0 :(得分:4)

我找到了答案。

curl --get'https://api.twitter.com/1.1/statuses/user_timeline.json' - data'count = 2& screen_name = twitterapi'--header'授权:OAuth oauth_consumer_key =“AAAAAAAAAAAAAAAAAAA”,oauth_nonce =“BBBBBBBBBBBBBBBBBBBBBB”,oauth_signature =“CCCCCCCCCCCCCCCCCCCCCCCCCCC” ,oauth_signature_method =“HMAC-SHA1”,oauth_timestamp =“1471672391”,oauth_token =“DDDDDDDDDDDDDDDDDDDDDDDDDDDD”“,oauth_version =”1.0“'

答案 1 :(得分:2)

由于大多数Twitter请求都需要计算oauth签名,因此您应该自己编写客户端或重用现有的命令行客户端。

  1. https://github.com/twitter/twurl
  2. https://github.com/sferik/t
  3. https://github.com/yschimke/oksocial/wiki(专注于Mac /跨服务)
  4. 如您所见,对请求的任何更改通常会使查询无效,甚至时间也是输入之一。

答案 2 :(得分:2)

由于您的特定查询不需要用户上下文,因此您可以使用仅应用程序身份验证来发出此请求。持票人令牌不会因每次请求而改变,因此它应该允许您继续使用curl。

https://dev.twitter.com/oauth/application-only

n.b。它不会对所有端点起作用,但对于您列出的情况应该如此。