エミ眠太の自由帳
 エミ眠太の自由帳
    
 
 やってみた      2022-12-11      2023-05-20

Twitter API v2に登録して自動投稿するbotを作ってみた

Language:
 Python
Framework/Library:
 Tweepy
Technology:
 bot
Platform/Tool:
 Heroku Twitter API

記事一覧へ

目次


はじめに

個人開発で作成したアプリを手っ取り早く無料で認知拡大させるには、やっぱりTwitterですよね。とはいえ毎日ツイートを考えて投稿するのはなかなか骨が折れると思います。ということで、投稿の自動化をすべく今回はbotを作ってみました。 ※本記事で利用するツールは一部利用料金がかかる可能性があります。次章で公式へのURL付きで簡単に説明しています。

bot作成・公開の前に

今回はTwitter API v2とHerokuを使った方法をご紹介しますが、残念ながらTwitter API v2では以前利用できた機能が一部有料版の機能となったり、Herokuについては月額利用料金がかかってしまったりで、そのまま使えないかもしれませんが詳しくは公式情報参考にしつつその点だけご留意いただいた上でご覧ください。

Twitter APIの有料化(Freeプランあり)

以前は無料版で多くの機能が使えましたが、現行の無料版では基本的には投稿・削除機能のみが利用可能で、投稿上限は1,500ツイート/月となっています。詳しくは公式でご確認ください。

Herokuの有料化(Freeプラン撤廃)

Herokuも無料で使えることから個人開発者の間で重宝されてきましたが、現在ではローエンドのプランも有料となってしまいました。こちらも詳しくは公式をご確認ください。

bot公開手順

ということで幸先が良いスタートではありませんが、botを公開するまでの手順については大きく以下の通りです。

  • Twitter API v2への登録(1/3)
  • Pythonでbotを作成(2/3)
  • Herokuに公開(3/3)

今回はPythonでbotを作成しますが、Rust、PHP、JavaScript等でも作成可能です。

bot作成

Twitter API v2への登録(1/3)

Twitter APIとは

そもそもTwitter APIとは、ですが「Twitterアプリケーションを使うことなく、ツイート・いいね・リツイート等の情報を取得・投稿できるサービス」です。なお、API利用にともないv1とv2の2種類がありますが、v1は非推奨となりました。また、v2についても、これまでEssential, Elevated, Academic Reseachの3種類がありましたが、こちらも非推奨となりましたのでこの記事は無料で利用可能なv2(Free)の利用について解説します。ちなみに、Freeの他にはBasicとEnterpriseがいずれも有料です。

アカウント作成

  • 前置きが長くなりましたが、アカウント作成後はCONSUMER_KEY, CONSUMER_API_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET, BEARER_TOKENが発行できるのでこれらは別途控えておいてください。
  • なお、ACCESS_TOKENについては"Read and Write permissions"となっていることを確認しておいてください。※これが"Read only"だとツイート投稿ができません。前述の通りプランが変わったので、こちらの設定は不要になりました。投稿しかできないんだからそりゃそうですよね。

Pythonでbotを作成(2/3)

  • 今回は試しにSOUL'd OUTのDiggy-moさんのアレを1日1回ツイートしてくれるbotを作ります。Pythonを使ってコードを書いていきますが、ちょうどTweepyというライブラリがあったのでこちらを使わせてもらいましょう。楽なので。まずはライブラリインストールです。
pip install tweepy
  • 続いて下の通りコードを書いていきます。一行解説始めます。
  1. (l.1)tweepyをインポートします。
  2. (l.3~7)Twitter APIで発行されたキーを用意します。サンプルなので直接入力していますが、.envファイル等用意しておいた方が良いと思います。
  3. (l.9~15)tweepy.Client()にキーを入れ、client変数に格納します。これで認証させる感じです。
  4. (l.17-19)tweet関数を作ります。create_tweetメソッドの引数に投稿したい文字列を入力します。

それでは実行してみましょう。 鳴きましたね。

Herokuに公開(3/3)

最後に作成したPythonファイルをHerokuにデプロイします。上のようにPythonファイルを作っただけではローカルからしか投稿ないので、Herokuが提供しているHeroku SchedulerというAdd-on機能を利用して定期的にPythonファイルを実行(自動投稿)する仕組みを作りましょう。

  • まずはHerokuアカウントからHeroku Scheduler(無償)をインストールします。
  • Heroku Schedulerから定期実行(Job)を設定します。下の画像中央部よりCreate jobボタンをクリックすると画面右側にモーダルが表示されるので、ここで繰り返し時間(1/10min, 1/1h or 1/day)と実行コマンドを設定します。1日1度とした場合、UTC設定となるため日本国内での実行の場合には、-9時間で調整する必要があります。
  • コマンド部分にはPythonファイルの実行コマンドを入力しますが、この時点で先ほど作ったtweet_sample.pyファイルがアクセスできる状態にしておく必要があります。そのために、HerokuとGitHubが同期されている必要がありますがその設定方法はこちらの記事でまとめていますので別途確認ください。実行コマンドまで入力が完了したらこれで「Job」の設定は完了です。v2 Freeの投稿上限は1,500ツイート/月のため、1時間毎のツイートであれば上限値に引っかからなそうですね。
  • また、Twitter API利用にはCONSUMER_KEY等必要であることは2.の通りですが、Herokuへのデプロイ後は、環境変数の入力を忘れないようにしましょう。HerokuのDashboardから、[Settings]タブ > [Reveal Config Vars]ボタンで環境変数は入力可能です。

まとめ・参考

Tweepyを使えばとても簡単にbotを作ることができますね。ただし、短いスパンで同じ内容を繰り返し投稿しようとすると、Twitter側にはねられる可能性があるようです。無料枠の範囲内でプログラム側でランダムにorユニークな投稿をする仕組みを工夫して作ってみてください。

参考


記事をシェアする


関連する記事

よろしければこちらの記事も参考にしてみてください。

Loading...




記事一覧へ