Twurl 与curl 类似,但专为Twitter API 量身定制。它知道如何向指定用户的客户端应用程序授予访问令牌,然后使用该访问令牌签署所有请求。
它还提供其他开发和调试便利,例如为常见请求定义别名,以及支持多个访问令牌以在不同客户端应用程序和 Twitter 帐户之间轻松切换。
Twurl 可以使用 RubyGems 安装:
gem install twurl
如果您还没有,首先要做的是申请开发者帐户来访问 Twitter API:
https://developer.twitter.com/en/apply-for-access
获得该访问权限后,您可以创建 Twitter 应用程序并生成消费者密钥和秘密。
当您拥有消费者密钥及其秘密后,您就可以授权您的 Twitter 帐户使用该消费者密钥和秘密发出 API 请求。
twurl authorize --consumer-key key
--consumer-secret secret
这将返回一个 URL,您应该在浏览器中打开该 URL。向 Twitter 进行身份验证,然后将返回的 PIN 输入回终端。假设一切顺利,您将被授权使用 API 发出请求。 Twurl 会告诉你这么多。
最简单的请求只需要您指定要请求的路径即可。
twurl /1.1/statuses/home_timeline.json
与curl类似,默认执行GET请求。
您可以通过传递 -d 选项来隐式执行 POST 请求,该选项指定 POST 参数。
twurl -d ' status=Testing twurl ' /1.1/statuses/update.json
您可以使用 -X (或 --request-method)选项显式指定要执行的请求方法。
twurl -X POST /1.1/statuses/destroy/1234567890.json
您可以结合使用--bearer
选项和authorize
命令来生成持有者令牌。
twurl authorize --bearer --consumer-key key
--consumer-secret secret
然后,您可以使用--bearer
请求选项生成的不记名令牌发出请求。
twurl --bearer ' /1.1/search/tweets.json?q=hello '
要列出生成的不记名令牌,您可以使用bearer_tokens
子命令。
twurl bearer_tokens
这将打印一对consumer_key 及其关联的不记名令牌。请注意,此输出中省略了标记。
您可以使用 -H 标志访问其他 Twitter API 的不同主机。
twurl -H " ads-api.twitter.com " " /7/accounts "
要上传二进制文件,您可以将通话格式化为表单帖子。下面,二进制文件是“/path/to/media.jpg”,表单字段是“media”:
twurl -H " upload.twitter.com " -X POST " /1.1/media/upload.json " --file " /path/to/media.jpg " --file-field " media "
twurl alias h /1.1/statuses/home_timeline.json
然后您可以使用“h”代替完整路径。
twurl h
正如您所期望的那样,需要附加选项(例如请求参数)的路径可以与别名一起使用,就像与完整显式路径一样。
twurl alias tweet /1.1/statuses/update.json
twurl tweet -d " status=Aliases in twurl are convenient "
第一次授权客户端应用程序代表您的帐户发出请求时,twurl 会将您的访问令牌信息存储在其~/.twurlrc
文件中。后续请求将使用此配置文件作为默认配置文件。您可以使用accounts
命令查看哪些客户端应用程序已被授权使用哪些用户名:
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA (default)
testiverse
guT9RsJbNQgVe6AwoY9BA
请注意,这些消费者密钥之一被标记为默认密钥。要更改默认值,请使用set
命令,然后仅传递用户名(如果明确)或用户名和消费者密钥对(如果不明确):
twurl set default testiverse
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA
testiverse
guT9RsJbNQgVe6AwoY9BA (default)
twurl set default noradio HQsAGcBm5MQT4n6j7qVJw
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw (default)
hhC7Koy2zRsTZvQh1hVlSA
testiverse
guT9RsJbNQgVe6AwoY9BA
虽然更改默认配置文件允许您选择要使用的访问令牌 (OAuth1.0a),但不记名令牌不会链接到任何用户配置文件,因为仅应用程序身份验证不需要用户上下文。也就是说,如果您使用此使用者密钥生成不记名令牌后指定-c
( --consumer-key
) 选项,则无论您的默认配置文件如何,您都可以发出仅应用程序请求。默认情况下,twurl 从~/.twurlrc
文件读取当前配置文件的使用者密钥及其关联的承载令牌。
马塞尔·莫利纳 / @noradio
埃里克·迈克尔斯·奥伯 / @sferik
还有更多!