TBD
- python3 のインストール
- pip3 のインストール
- pip を最新バージョンにアップデート
python3 -m pip install --upgrade pip
- pip を最新バージョンにアップデート
- ngrok のインストール
- Emulator 起動
scripts/start_firestore_emulator.sh(Docker があれば docker-compose を使用)
- Emulator を使ってテスト実行
scripts/test_with_emulator.sh
FIRESTORE_PROJECT_ID と FIRESTORE_EMULATOR_HOST は環境変数で上書きできます。
- 仮想環境の作成(必須ではないが推奨)
$ python3 -m venv {仮想環境名}$ source /{仮想環境名}/bin/activate - 依存パッケージのインストール
$ pip3 install -r requirements.txt - LINE Devlopers にてプロバイダ及び messaging API のチャンネルを作っておく
- 参考: https://developers.line.biz/ja/services/messaging-api/
- messaging API 設定にて、応答メッセージを無効, webhook の利用を有効にする
- LINE App にて友達登録しておく
.envファイルにチャンネルトークンとチャンネルシークレットを入力し、コメントアウトを外す$ flask run// localhost:5000 に立ち上がる- ngrok コマンドにて 5000 ポートをデプロイ
$ ngrok http 5000
- デプロイ先の URL の末尾に
/callbackを追加し、LINE bot チャンネルの Webhook URL に設定
$ flask run$ ngrok http 5000- 発行された URL の末尾に
/callbackを追加し、 LINE bot チャンネルの Webhook URL に設定
$ flask runを実行すると、server.pyに書かれた処理が実行される。- その中で
src/__init__.pyの app を取得し、app.run()が呼び出されることでサーバーが起動する。
- bot 宛にメッセージが送信されると、
/callback(LINE bot チャンネルの WebhookURL に基づいたエンドポイント) に POST リクエストが送信される。 - そのリクエストをサーバーが受け取り、
src/views.pyの callback() が実行される。 - handler.handle(body, signature) によりイベントをハンドリングする。
- ハンドリングしたイベントに対応した、
handler.add()によりハンドラーに登録されている関数が実行される