Twitter の API を Python製「TwitterAPI」ライブラリで手軽に利用する

mull

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

タイトルとURLをコピーしました