自作してPyPIにアップロードしたパッケージ「lineworks」を使用し、LINE WORK版Trello Botを実装した際の備忘録。
デプロイ先は前回(PythonでLINE WORKS版 Trello Botを作るまでのお話)同様、Herokuとした。
パッケージインストール&GitHubからデプロイにしたことで、だいぶ楽になった。
環境
Windows 10
PyCharm Community Edition 2019.2
Python 3.7.3(Anaconda3 2019.07)
GitHub
Heroku
前提条件
- LINE WORKS API情報取得済
- Trello API情報取得済
実装までの流れ
- 仮想環境構築
- ライブラリのインストール
- コーディング(Flaskデプロイ用ファイル作成含む)
- GitHub経由でHerokuにデプロイ
- Trello Webhookの作成
- テスト
仮想環境構築
PyCharmでプロジェクト作成後、python -m venv venv
コマンドで仮想環境構築。PyCharmでプロジェクト作成する際に仮想環境構築できるようなのでそれを使おうとしたら、なぜかpipインストールできない現象にはまった(SSLエラー)。次から絶対、使わない。
ライブラリのインストール
インストールしたものは下記の通り。
- flask
- gunicorn
- lineworks
- py-trello
なお、requestsとpycryptodomeはlineworksをインストールすれば自動で入る(pycryptoはNoModuleErrorになることが分かって大変だった・・・)。
コーディング
GitHub参照。前回はPython 3.6.8を使っていたが、今回はPython 3.7.3を使っているので、runtime.txtに変更あり。また、今回からlineworksパッケージを使っているので、requirements.txtも変更あり。
GitHub経由でHerokuにデプロイ
GitHubにリモートリポジトリを作った後、下記コマンドでローカルリポジトリ作成&プッシュ。
$ git init
$ git add .
$ git commit -m "commit message."
$ git remote add origin {リモートリポジトリ名}.git
$ git push -u origin master
その後、Herokuにもアプリを作り、前回同様、ビルドパックの設定と環境変数の設定を行う。そして、GitHubからデプロイ。
Trello Webhookの作成
HerokuにデプロイしてからでないとWebhook作成できない(HEADリクエストしないと作成に成功しない)ので、このタイミングで行う。
テスト
Trelloのカードからコメントして、LINE WORKS Botにテキストメッセージが来れば成功。なお、Trelloのカードにコメント欄ができる条件があり、ボードに2名以上の参加者がいないとダメみたい。