麻雀対戦結果管理用 LINE Bot
(TBD)
(TBD)
- LINE Devlopers にてプロバイダ及び messaging API のチャンネルを作成
- 参考: https://developers.line.biz/ja/services/messaging-api/
- messaging API 設定にて、応答メッセージを無効, webhook の利用を有効にする
- LINE App にて友達登録しておく
- チャンネルの Basic settings 画面にて
Channel secret
、Messaging API 画面にてChannel access token
を取得し、 .env ファイルにてYOUR_CHANNEL_ACCESS_TOKEN
,YOUR_CHANNEL_SECRET
にそれぞれセットする
- Install Docker
- run docker-compose on root directory of mahjong-manager
$ docker-compose up
- .envファイルにて環境変数
EXTERNAL_DATABASE_URL
にmongodb://localhost:27017/
を設定、DATABASE_NAME
にdb
を設定
- Use MongoDB Atlas
- .envファイルにて環境変数
EXTERNAL_DATABASE_URL
に Atlas の DB 接続画面から得られる URL を設定、DATABASE_NAME
にdb
を設定
- Install Python
- Create a virtual env(recommend)
$ python -m venv mmvenv
- apply the virtual env
$ source mmvenv/bin/activate
- Install dependencies
$ python -m pip install --upgrade pip
$ pip install -r requirements.txt
- Set the env var "FLASK_APP" "src/server"
$ export FLASK_APP="src/server"
- run flask server
$ flask run
- Install ngrok
- Temporary deploy App
$ ngrok http 5000
- Copy Forwarding URL(https)
- LINE チャンネルの Messaging API画面の 'Webhook URL' に上記URLの末尾に
/callback
を追加したものを入力 - Verify ボタンで検証成功すれば完了
クライアントからの受け口となる層
- LINE Handler
- LINE APP のアクションをトリガーに呼ばれる処理
- ReplyService に返答情報を格納し、LINE のテキストメッセージとして返答する。
- Views
- Web ブラウザの画面表示処理
- 基本的にhtmlを返す
- Apis:
- 基本的にjsonを返す
クライアントの求める機能を提供する層
- Use Cases
- ユーザの1アクションが求める1シナリオ
- そのシナリオの流れがわかるように詳細な処理はできる限りApp ServiceやDomain Serviceに任せる
- Application Service
- データに直接関係しない、共有可能な処理(Utility的な)
ドメイン(このアプリで管理する業務データのこと)の情報や操作に関する層
- Domain Service
- ドメインを操作する処理
- Entity
- ドメインの情報を表すクラス
DBアクセス層
- Repository
- データのレコード操作処理