DiscordからLINEに、LINEからDiscordにメッセージを送信!あなたのSNSを1つにまとめます!
DINEを使用される方は、公式Discordサーバーへの参加をお願いしております : Discordサーバー参加はこちら
フィードバック, 更新情報, 導入方法, FAQなど、オトクな情報いっぱいです。
dine_demo.mp4
- herokuデプロイ用ブランチ作成時に追記予定。
- Discord Delelopver PortalからDiscordBOTを作りましょう。
- DiscordBOTをサーバーに追加しましょう。
- LINEを受信するチャンネルを設定しましょう。
- LINEとDiscordからメッセージを送受信できることを確認しましょう。
- LINE DevelopersからLINEBOTを作りましょう。
- Discordサーバーと連携するために、メニューから"サーバーと連携"をタップしましょう。
- Discordサーバーに連携用パスワードを入力して連携を完了させましょう。
- LINEとDiscordからメッセージを送受信できることを確認しましょう。
Dockerを使うことで、たったの3ステップでDINEを動かすことができます!
- POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DBは、DINEのデータベースに接続するための設定です。自由に設定してください。
- NGROK_AUTHは、ngrokにログインして、Your Authtokenを設定します。
- DISCORD_TOKENは、DiscordBotのトークンを設定します。
- LINE_ACCESS_TOKEN, LINE_CHANNEL_SECRETは、LINEBotのChannel access tokenとChannel Secretを設定します。
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
NGROK_AUTH=
DISCORD_TOKEN=
LINE_ACCESS_TOKEN=
LINE_CHANNEL_SECRET=
コンテナを起動させます。docker-compose.ymlがあるディレクトリで実行してください。DINEが動き始めます。
docker-compose up -d
ngrokのURLを取得します。 url=https:// から始まるURLをLINEのWebhook URLに設定します。
docker-compose logs dine-ngrok
- Python
- ORM : sqlalchemy
- BackEnd : responder
- DiscordBOT : discord.py
- LINEBOT : line-bot-sdk
- DBMS : PostgreSQL
- PortForwarding : ngrok
- Container : Docker, Docker Compose
- VersionControl : GitHub
今回のプロジェクトでは、並列処理, 非同期処理を使用したため、学習コストは高めだった。両者の理解により、ブロッキングせず, 高パフォーマンスなシステムを作るにはどうしたら良いのかという考えが身につき,今後のプロジェクトでも活かそうと思う。
webフレームワークの使用、ORMでのCRUD操作などを通し、バックエンドの楽しさと興味深さがより一層深まった。次回は、これらの機能が詰まったWebアプリを作ろうと思う。
また、LINE Messaging APIの仕様上、プッシュメッセージの最大送信料が1000件なため、私自身でのDINE公開運用を行うことは難しいものとなってしまったのは残念な結果だ。
今後は、LINEBOTの完全非同期化, Discordからのスケジュール機能の追加などを予定している。
リファクタリングも時間を見つけて進めていきたい。
Copyright 2021 YudaiSaito
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
- 齋藤 悠大 - Yudai Saito
- yudai.saito.dev@gmail.com