Twitter の API を初めて使おうとしたとき思いのほか情報がなくて驚いたのに加え、使いやすいまともなソリューションっぽいものも全然なさそうだったので記録しておくの巻。
使うもの
Twitter Developer の公式サイトを漁っていたら「各言語によるライブラリ集」的なやつを見つけました。以下。
今回は Python で実装を探していたのですが、request
でベタ書きするだのOAuth1Session
という OAuth 用のモジュールを使うだの色々見つかるわりには Twitter も標準的な実装とかは紹介してくれていなくて、そんな中公式の推奨?っぽいライブラリはかなり助かります。
選んだのはこれ。
名前そのまんまなんですが、下記のように超わかりやすい最高にシンプルな記述が素敵。
from TwitterAPI import TwitterAPI api = TwitterAPI( consumer_key, consumer_secret, access_token_key, access_token_secret ) api.request('statuses/update', {'status':'This is a tweet!'})
見てわかる通り、OAuth 認証に使う例の4つのキー類もそのまま扱えて、次の行ではもうツイートのリクエストができちゃいます。まさにこういうレベルのものを探していたのになんで全然見つからんかったんだ…。
インストールはpip
でできます。
pip install TwitterAPI
基本的な使い方はこれだけ。
画像添付とか
res = api.request( "media/upload", None, {"media": file} ) media_id = res.json()["media_id"]
画像の添付は、request
タイプの指定をmedia/upload
にしつつ第三引数にキー名をmedia
として画像ファイルをあてがいます。
ファイルは普通にファイルオブジェクトやバイナリが許容される模様。
レスポンスの中にmedia_id
というのがいるのでそれを取り出しておきます。json()
となっているのはこの TwitterAPI オブジェクトの独自メソッドなのでうっかりjson.loads(res["media_id"])
とかやらないように注意。
そしたら通常ツイートの実装をベースに画像を添付します。
res = api.request( "statuses/update", { "status": tweet_text, "media_ids": media_id } )
media_id
を付与するキー名はmedia_ids
であることに注意してください。
その他基本的な API(主に v1.1 と呼ばれているやつ)は下記のディレクトリから適宜サンプル実装を拾いましょう。
v2 もあるようなのですが、こちらは Twitter 公式のリファレンスを読んだ感じ自分が必要とすることはなさそうだったのでスルーしています。
Comments