Pythonで作ったTwittter botをHerokuで定期実行する方法【Windows版】

Python
読了時間 挨拶

記事は約 6 分で読めます。

くろやぎ
くろやぎ

みなさん、こんにちは!
くろやぎ(kuroyagikuncom)です。
よろしければ、Twitterの方にも遊びに来てください。

この記事ではPythonで作ったTwittter botをHerokuで定期実行する方法をWindows ver.で紹介します。

対象読者
  • Twitterのbotを作ったはいいが、それを定期実行する方法が分からない方
  • Herokuの使い方を知りたい方

TwitterAPIを使うと、フォローやいいね、DMの送信などを、コードを書いて実行することができるので非常に便利です。
ただ、定期的にツイートの収集などをしてデータ分析する場合は、逐一PCを起動してコマンドを叩いてコード実行するのは面倒くさい。
そんな時に役立つのがHerokuというサービス。
Herokuを使うとオンラインにスクリプトを置いて定時実行することができます。

内容
  • Twitterのbotをオンラインで定期実行する方法
  • Herokuのアカウント作成と基本的な使い方

それではこれからHerokuでのPythonスクリプトの定期実行の仕方について、丁寧に解説していきます。

実行環境
  • Windows10
  • Python3.7
  • Heroku7.19
  • Git for Windows 2.19 64bit

Pythonを定期実行するには

定期実行はローカルでもできる

「オンラインでPyrhonスクリプトを定期実行する方法を紹介します」と宣言しましたが、実はWindowsのタスクスケジューラを使えばPythonのコードをローカルで定期的に実行することができます。
ただ、定時実行する時間にPCの電源を入れておかなければならないのはもちろんのこと、Wi-Fiが接続されていること、管理者権限でログインしていることが必要になります。
それに、個人的な問題だとは思うんですが、僕のPCだとアクセス権限の問題で定期実行がされないという事象が生じてしまいます。
そんなにWindowsへの造詣が深いわけでもないので何が原因かが分からない。
そんなわけで、「オンラインで定期実行した方が早いんじゃないか?」という結論に至り、Herokuを使うことになりました。

Herokuの公式ドキュメント

さっそく次の章からHerokuの使い方を解説していくのですが、公式のドキュメントも一読してみることをおすすめします。
公式のドキュメントは英語で書かれてはいますが、わかりやすいように書かれているので参照してみたい方は下のリンクからアクセスしてみてください。

公式ドキュメント

HerokuでTwitterのbotを定期実行

Herokuのアカウントを新規作成

下のリンクから、Herokuのアカウントを取得します。

Herokuのアカウントを取得

苗字、名前、メールアドレスなどを入力して次に進むと、登録したアドレス宛にアクティベート用のメールが届くのでリンクをクリックしてアクティベートを完了させます。
パスワードを設定し、ログインをします。
ただし、パスワードには英字、数字、記号を含める必要があるので注してください。

無料プランだと使用できるリソースに制限がありますが、今回のような使い方の場合は無料プランでも大丈夫です。
ただし、無料プランであってもアカウントの認証のためにクレジットカードの認証が必要になるので注意してください。

HerokuのCLI(コマンドラインインターフェイス)をインストール

Herokuの作業の大半は、コマンドを使って行います。
ただWindowsのデフォルトでは「herokuコマンド」という、Herokuでもろもろの操作をするために必要なコマンドを使うことができません。
なので、それに必要なHeroku CLIをインストールします。

Heroku CLIをインストール

今回は、【Windows 64-bit installer】をダウンロードします。
インストールが完了したらコマンドプロンプトを起動し、次のコマンドでログインを完了しておきます。

作業用フォルダの作成

コマンドプロンプトで、cdコマンドを使いデスクトップに移動します。
【mkdir hoge】で「hoge」という名前の作業用フォルダを作りcdコマンドでそのフォルダに移動します。

必要なファイル

Herokuでアプリを動かす際には以下のファイルが必要です。

runtime.txt:Pythonのバージョンを記述するファイル

requirements.txt:必要なモジュールを記述するファイル

virtualenvの仮想環境で必要なモジュールをインストールして、【pip freeze > requirements.txt】というコマンドを実行します。

すると、インストールされたモジュールがrequirements.txtに出力されるので、1つ1つ入力する手間が省けます。

tweet.py:Twitterのbot本体

デプロイ

Gitを使ってデプロイをします。
Windowsのデフォルトではgitコマンドを使うことができないので、「Git Bash」というアプリを使用します。
下の記事を参考にインストールしてください

Git for Windowsのインストール方法

インストールが完了したら次のコマンドを実行します。

TwitterのAPIキーは、スクリプトに直書きするのはセキュリティ上よろしくありません。
なので、これらのキーは環境変数に設定します。
以下のコマンドを実行して環境変数を設定します。

クオーテーションは必要ないです。
登録された環境変数は以下のコマンドで確認できます。

動作確認

定期実行をする前に、まずは次のコマンドを使って手動で動作確認をしましょう。

次のようなツイートができていればOKです。

次に、定期実行をするためのスケジューラを設定します。
Herokuで定期実行するには「heroku scheduler」というアドオンを使用します。

ただし、無料のアドオンを利用する場合でも、クレジットカードの登録が必要になります。

ブラウザでHerokuにアクセスし、コンソールから設定を行います。

【Add new job】をクリックすると、新しいタスクが作成されるので$の後に【python tweet.py】と入力し、タスクを実行するタイミングを設定して完了です。
Herokuはデフォルトで世界協定時刻を採用しているので、「表示されている時刻+9時間」が日本での時間になります。

まとめ

いかがでしたか?

Herokuを使うことでPythonのスクリプトを定期的に実行することが可能になります。
Twitter APIと組み合わせて使うことで、フォローやDM、リツイート、ファボなどの操作を自動化させることができます。
使い方は∞なので、読者さんのよく使うアプリなどと連携させてみると面白いかもしれません。
ぜひ、おためしあれ~

ヤギパイ一緒に Python学習本

▼Pythonを0から一緒に学びましょう!
ヤギでもわかるPython入門

▼【Python初心者必見!】おすすめのPython学習本を厳選いたしました。
Pythonの学習におすすめの本13選

ブログをメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

Python
シェアする
クロヤギ

コメント

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