【问题标题】:How to make Twitter API call through curl in unix如何在 unix 中通过 curl 进行 Twitter API 调用
【发布时间】:2016-12-19 02:41:21
【问题描述】:

我想从 Twitter REST API 中提取数据。我已经创建了消费者密钥、秘密和访问令牌、秘密。我尝试过使用“Test OAuth”,它会生成一个 CURL 命令,但如果我更改任何一个参数,那么它会给出以下错误。 消息:{"errors":[{"code":32,"message":"Could not authenticate you."}]}

现在我想在 shell 脚本中使用 CURL 为不同的屏幕名称调用 twitter API。

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

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

提前致谢。

问候, 阿斯温

【问题讨论】:

标签: api curl twitter


【解决方案1】:

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

  1. https://github.com/twitter/twurl
  2. https://github.com/sferik/t
  3. https://github.com/yschimke/oksocial/wiki(专注于 Mac/跨服务)

正如您所见,对请求的任何更改通常都会使查询无效,甚至时间也是输入之一。

【讨论】:

  • 我只需要在 Twitter Rest API 中进行操作
【解决方案2】:

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

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

n.b.它不适用于所有端点,但应该适用于您列出的情况。

【讨论】:

    【解决方案3】:

    我找到了答案。

    curl --get 'https://api.twitter.com/1.1/statuses/user_timeline.json' \
         --data 'count=2&screen_name=twitterapi' \
         --header 'Authorization: OAuth oauth_consumer_key="AAAAAAAAAAAAAAAAAAAA", oauth_nonce="BBBBBBBBBBBBBBBBBBBBBBB", oauth_signature="CCCCCCCCCCCCCCCCCCCCCCCCCCC", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1471672391", oauth_token="DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD", oauth_version="1.0"'
    

    【讨论】:

    • 我们必须生成自己的随机数和签名吗?我在 API 设置中没有看到它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多