*/ ?>

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


Warning: Attempt to read property "ID" on null in /home/c2485919/public_html/mirumi.in/wp-content/themes/cocoon-child-master/endpoints.php on line 37

Warning: Attempt to read property "ID" on null in /home/c2485919/public_html/mirumi.in/wp-content/themes/cocoon-child-master/endpoints.php on line 37

Warning: Attempt to read property "ID" on null in /home/c2485919/public_html/mirumi.in/wp-content/themes/cocoon-child-master/endpoints.php on line 37

Twitter の API を初めて使おうとしたとき思いのほか情報がなくて驚いたのに加え、Python においては使いやすい手頃なソリューション的なものも全然なさそうだったので記録しておきます。

使うもの

Twitter Developer の公式サイトを漁っていたら「各言語によるライブラリ集」的なやつを見つけました。以下。

今回は Python で実装を探していたのですが、 requests でベタ書きするだの 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() となっているのはこの requsets などと同じく 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 かのように思えるのですが、こちらはリファレンスを読んだ感じ自分が必要とすることはなさそうだったのでスルーしています。

0
0
234
0

Warning: Attempt to read property "like_count" on null in /home/c2485919/public_html/mirumi.in/wp-content/themes/cocoon-child-master/endpoints.php on line 820
0
みるみ
Follow Me!
みるみみるめも筆者

ブロガー、エンジニア。

詳しいプロフィールはこのページで色々書いてます。もやってます。

みるめも
1
コメントが正常に送信されました。承認されるまで表示されませんので二重投稿なさらないようご注意ください。