LINE WORKS Bot Callback サーバーを Google Colab + Cloudflare Tunnel で構築する
LINE WORKS Bot の Callback サーバーを簡単にセットアップする方法を解説します。この方法では、Google Colab と Cloudflare Tunnel を使用して、素早く外部からアクセス可能な環境を構築します。
以下の URL で Google Colab ノートブックを試せます。
Google Colab ノートブック: LW_Bot_Callback_CloudflareTunnel.ipynb
必要な準備
-
LINE WORKS Developer Console での設定
- Bot を作成し、Callback URL を登録します。Colab 実行後に生成される Cloudflare トンネルの URL を設定してください。
-
Google Colab のアクセス
- Google アカウントで Colab にアクセスします。
-
Python 環境の準備
- 必要なライブラリとツールはノートブック内で自動的にセットアップされます。
スクリプト
以下のスクリプトは、Callback サーバーを Google Colab 上に構築し、Cloudflare Tunnel を使用して外部アクセス可能にします。
# 必要なライブラリのインストール(既にインストール済みならスキップされます)
!pip install requests flask
# Cloudflareトンネルツールをダウンロード、設定(既にダウンロード済みならスキップ)
!wget -N https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
!chmod +x cloudflared-linux-amd64
from flask import Flask, request, jsonify
import threading
# Flask アプリケーションの初期化
app = Flask(__name__)
@app.route('/', methods=['POST'])
def callback():
# Callback のリクエスト内容を取得
event = request.json
print("受信したイベント:", event)
# 必要に応じて非同期で処理
if event.get('type') == 'message':
print("メッセージ内容:", event.get('content', {}).get('text'))
return jsonify({'status': 'ok'}), 200
# サーバーを起動する関数
def run():
app.run(host='0.0.0.0', port=5000)
# Flask サーバーを別スレッドで実行
thread = threading.Thread(target=run)
thread.start()
# Cloudflareトンネルを起動し、外部アクセス用の URL を取得
!./cloudflared-linux-amd64 tunnel --url http://127.0.0.1:5000 &
スクリプトのポイント
1. 必要なパッケージのインストール
Google Colab 環境で必要な requests
と flask
を自動的にインストールします。
2. Flask サーバーの構築
Flask を使用して Callback を処理するサーバーを構築します。/
エンドポイントに POST リクエストを受信すると、イベントデータを取得し、コンソールに出力します。
3. Cloudflare Tunnel の活用
Cloudflare Tunnel を使用してローカルサーバーを外部アクセス可能にします。実行後、Cloudflare が提供する URL が生成されます。
実行結果
成功時のログ
* Running on http://127.0.0.1:5000
* Running on http://172.28.0.12:5000
2024-12-04T11:34:48Z INF Your quick Tunnel has been created!
2024-12-04T11:34:48Z INF Visit it at: https://inclusive-pc-path-dale.trycloudflare.com
この URL を Bot の Callback URL に設定してください。
注意点
-
トンネルの有効期限:
Cloudflare トンネルの URL は一時的です。Colab セッションが終了するとトンネルも無効になります。 -
署名検証:
実運用では、LINE WORKS から送られるリクエストの署名を検証してください。
まとめ
この方法を使えば、LINE WORKS Bot の Callback サーバーを簡単にセットアップできます。開発・テスト環境に最適です。本番環境では、安定したホスティングサービスの利用を検討してください。