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
還有更多!