見出し画像

新しいTwitter APIに対応してみる

どうも、タケオです。

だいぶご無沙汰してしまいました。
世間ではWBCの優勝でお祭り騒ぎでしたね。

Twitter API 終了のお知らせ

うそです。終了しません。
Twitter社が突然APIの利用についてお知らせを発信しました。

本日、新しい Twitter API アクセス層をローンチします!セルフサービス アクセスの詳細を共有できることを嬉しく思います。

Twitter

いや、全然嬉しくないですから。
前回の騒ぎで無料版なら細々と使えるって話で落ち着いたのでは?とタカを括っていたら突然のお知らせでした。

書き込み専用のユース ケースと、アプリ レベルで 1,500 ツイート/月、メディア アップロード エンドポイント、および Twitter でのログインを使用して Twitter API をテストするユース ケース向けに、新しい形式の無料 (v2) アクセスを導入します。

Twitter

ツイート可能数に変更はありませんが、APIのバージョンが2に上がっています。

Developer Portal

1日のツイート数にも上限が設けられる様です。

Twitter API v2 対応

以前作成したソースではよく分からず作ったこともありv1.1での接続を行なっていました。
ですので、まずはv2に対応した処理に変更します。

こちらを見るとなんとBearer Tokenだけ指定すればOKとのこと。

tweepy

今までは tweepy.api で認証していましたが、今度からは tweepy.Client で認証することになります。

# v1.1
auth = tweepy.OAuthHandler(api_key, api_secret)
auth.set_access_token(access_token, access_token_secret)
self.api = tweepy.API(auth)

# v2 ※エラーになりました
self.client = tweepy.Client(bearer_token)

で試してみましたがエラーとなってしまったので、公式のサンプル通りに以前と同様の設定を入れてみます。

# v2
self.client = tweepy.Client(
    consumer_key=api_key, consumer_secret=api_secret,
    access_token=access_token, access_token_secret=access_token_secret
)

# send tweet
self.client.create_tweet(text="This Tweet was Tweeted using Tweepy and Twitter API v2!")

こちらでは正しくツイートすることができました。
で、よくよく見直すと指定方法が間違っていましたが、このままにすることにします。

# 正しいClientの指定方法
self.client = tweepy.Client(bearer_token=bearer_token)

# ツイート内容の設定
self.client.create_tweet(text=msg)

という感じで、記述を書き換えることで Twitter API v2 に対応が完了しました。

新しいv2ってどういうことだ?

ここまでやって気が付きました。
今回対応したのは今までも提供されていた既存のv2対応でした。

新しい形式の無料 (v2) アクセスを導入します。

Twitter

これって今のv2と異なる仕様なのでしょうか。
もしそうなるとtweepyの対応を待たなくてはいけなくなるので大変なことになるかも。

というわけで

まだ通知されたばかりで情報が不足していますが、とりあえずv1.1からは脱却できたのでよしとしましょう。

続きが分かりましたら更新したいと思います。


この記事が気に入ったらサポートをしてみませんか?