【Python学習】Twitter API v2をつかって自動投稿 (tweepy利用)
Twitterからの情報収集やツイートを自動化したいと思い、やり方を調査しました。
しかし、TwitterAPIが2021年11月にバージョンアップしたらしく、ネット上の情報では上手くいかないところがありました。
自分がはまったところと、簡単な検索、ツイートプログラムをご紹介します。
API利用登録
英語サイトでの登録になるため、昇格の為だけにTOEIC受けてる自分には辛かったです(笑)以下の流れで、登録していきました。
- TwitterAPI サイトにアクセス。ググればトップに出てくる。
- 「Sign Up」から登録。
- 必要事項を記入
- メールが届くのでクリック。
ここまでが、APIを利用するための事前申請になります。
以降は、各種APIキーを取得するため設定になるので、作りたいプログラムごとに実施することになります。 - アプリ名を設定
- 各種キーが発行。このタイミングで出てきたキーは使いません。ハマりました。
- と思いきや、発行されたデフォルト状態では、権限がReadになっており、ツイートすることができませんでした。
設定を変更し、Writeできるようにします。
- 権限の変更が完了
-
各種キーを再発行。こっちを使う。
これでAPIキーの発行は完了です。
Pythonプログラム
次にPythonでAPIを利用するプログラムを作成していきます。
今回はtweepyというライブラリを利用して実施しました。
tweepyは開発が終了しているようですのであしからず。
tweepy.API()
ではなくtweepy.Client()
を使用することで対応できるようです。
キーワード検索した結果表示と、ツイートするプログラムを簡単に作成しました。
ソースコードと実行結果は以下の通りです。
<ソースコード>
import config import tweepy # 認証に必要なキーとトークン BT = config.BEARER_TOKEN AK = config.API_KEY AS = config.ASI_KEY_SECRET AT = config.ACCESS_TOKEN ATS = config.ACCESS_TOKEN_SECRET client = tweepy.Client(BT, AK, AS, AT, ATS) def search_tw(msg): response = client.search_recent_tweets(msg) print(response.meta) tweets = response.data for tweet in tweets: print(tweet) print("================================") def create_tw(msg): response = client.create_tweet(text=msg) if __name__ == '__main__': search_tw("はてなブログ") create_tw("Tweetpyでの投稿テスト")
<実行結果:検索結果表示>
はてなブログに投稿しました |
Editor Utility Widget と Python で CSV とやり取りする - You are done! https://t.co/7oZD2k4cEQ
=====================================================
はてなブログに投稿しました #はてなブログ
和気鵜飼谷温泉のサンシュユ - あの瞬間!俺たちは若かった!!
https://t.co/crwymFV1aW
=====================================================
RT @nikolaevbonifa1: 『京都御所無料ガイドツアー』詳細レポート!京都観光の穴場おすすめスポットです!
はてなブログ投稿しました!
旅人サイファのお出かけブログ https://t.co/jYRDy8XZnO
#ブログ更新 #旅人サイファ #旅行プランニン…
=====================================================
はてなブログに投稿しました #はてなブログ
東北新幹線に乗っていたら大地震に襲われた瞬間の動画 - ステレッパツ
https://t.co/ygB9UWF8qA
=====================================================
はてなブログに投稿しました #はてなブログ
来週(3月21日~3月25日)の投資戦略 - 儲ける&儲かる!株式投資、DC(確定拠出年金)
https://t.co/6LMGdKKZAA
=====================================================
はてなブログに投稿しました #はてなブログ
初動相場追記
【タクティカル・マスターズ 当たり】フラゲで全収録カード判明!商品詳細&最新情報・現在の収録カードなど色々とまとめ! - 【遊戯王 最新情報】まいログ:遊戯王,TCGやトレンド情報まとめ
https://t.co/CcChJHp1tP
=====================================================
[はてなブログでフッタにコピーライトを記載する方法]
ブログのフッタに Copy Light を掲載してみました。
#はてなブログ #ブログカスタマイズ
https://t.co/3lg2zubJUM
=====================================================
はてなブログに投稿しました #はてなブログ
おはようございます!素敵な3連休をお過ごしください!
★英語のレッスン★Phrasal verbs~LESSON 72 Come out~バケットリスト続き - Channel-Phrasalverbs’s blog
https://t.co/dplTeQA6JI
=====================================================
はてなブログに投稿しました #はてなブログ
やる気を上げる方法 - cocosapo-yusuke’s blog https://t.co/0b0xZNTcwZ
=====================================================
はてなブログに投稿しました #はてなブログ
【白銀の城のラビュリンス 価格 相場】初動相場,値上がり・高騰は?現在の相場をおさらい! - 【遊戯王 最新情報】まいログ:遊戯王,TCGやトレンド情報まとめ
https://t.co/dE3FC9FMcD
=====================================================
<実行結果:ツイート>
Tweetpyでの投稿テスト
— レオハル@車載のソフト屋さん🚗 (@vefortec) 2022年3月18日
最後に
ウェブにある情報が、v1時代のものが多いようです。
v2になった以降の情報も、しっかり確認すればあるようなので、見極めが大事ですね。
自分が特にはまったところは、Write権限付与後に再度APIキーを発行しなおさないといけなかったところです・・・。
参考サイト:
【Python×Twitter】検索ツイートのデータ取得・分析|APIとtweepy活用による自動運用アプリ開発支援