【第1回(全4回)】超初心者向け!無料でできる LINE チャットボット入門
〜 LINE Developers 登録から「Hello!」ボット完成まで 〜
こんにちは!
この記事は、4回シリーズで学ぶ「超初心者のための LINE チャットボット講座」 の 第1回 です。
プログラミングが初めての人でも大丈夫!
できるだけ専門用語を使わず、ステップバイステップで丁寧に 進めていきます。
🎯 第1回のゴール
今日のゴールは 「LINE にメッセージを送ると、Bot が返事をしてくれる」 ところまで到達すること!
具体的には、このような流れのボットを作ります。
ユーザー:こんにちは
Bot:こんにちは!メッセージありがとう!
もちろん 完全無料 でできます。
🧰 今回使うもの
- パソコン(Windows / Mac どちらでもOK)
- LINE アカウント(普段使っているものでOK)
- 無料の LINE Developers アカウント
- Python(3.x)
※インストールされていない人向けの説明も書いています! - ngrok(無料で利用可能)
🧱 Step 1. LINE Developers に登録しよう
① LINE Developers のページにアクセス
「LINE Developers」で検索、または以下のURLからアクセス
(※Qiita規約によりURL直接記述は避けます。検索してください)
② LINEアカウントでログイン
ボタンがあるのでクリックして進めばOKです。
③ 新しい「プロバイダ」を作成
プロバイダとは「Botを管理するグループ名」みたいなもの。
- Create a new provider
- 好きな名前を入力(例:MyFirstBot)
- 作成!
④ チャネル(Bot本体)を作成
- 「Messaging API」を選択
- チャネル名を入力(例:HelloBot)
- そのまま進み「作成」
これで Bot の入れ物が完成です 👏
🧱 Step 2. チャネル設定を確認しよう
作成したチャネル内に、次の重要な情報があります。
- チャネルID
- チャネルシークレット
- アクセストークン(長期)
これらは Python から LINE と通信するときに必要になります。
見つけたらコピーしてメモ帳に一旦貼っておきましょう。
🧱 Step 3. Python を準備しよう
※すでに Python が入っている人はここは飛ばしてOK!
① Python のインストール
Windows の人:
公式サイトから「Python 3.x」をダウンロードしてインストール。
(必ず「Add Python to PATH」にチェック!)
Mac の人:
brew install python
などでもOK。
② 必要ライブラリを入れる
ターミナル(またはコマンドプロンプト)を開いて入力します。
pip install flask line-bot-sdk
これで準備完了!
🧱 Step 4. 最初の LINE Bot を作ろう(Hello Bot)
以下の内容を app.py として保存してください。
from flask import Flask, request, abort
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
app = Flask(__name__)
# ここは自分のLINE Developersの情報に書き換えてください
LINE_CHANNEL_ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"
LINE_CHANNEL_SECRET = "YOUR_CHANNEL_SECRET"
line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)
@app.route("/callback", methods=['POST'])
def callback():
signature = request.headers['X-Line-Signature']
body = request.get_data(as_text=True)
try:
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
# 送られてきたユーザーのメッセージ
user_msg = event.message.text
# ボットからの返事
reply = f"こんにちは!『{user_msg}』って言ったね!"
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=reply)
)
if __name__ == "__main__":
app.run(port=5000)
🧱 Step 5. Bot をインターネット公開する(ngrok)
LINE は インターネット上のURLにしかアクセスできません。
そのため、ローカルPCで動いている http://localhost:5000 を外部公開します。
① ngrok をインストールして起動
ngrok http 5000
すると
Forwarding https://xxxx.ngrok.io → http://localhost:5000
こういう URL が表示されます。
この https://〜 の URL をコピー!
🧱 Step 6. LINE の Webhook URL を設定
LINE Developers のチャネル設定画面 →「Messaging API」から
- Webhook URL
→https://xxxx.ngrok.io/callback
を入力して「保存」。
Webhook を「有効」にするのも忘れずに!
🎉 完成!ボットにメッセージを送ってみよう
LINE の「QRコード」から Bot を友だち追加して、
「こんにちは」などと送ってみてください。
Bot:こんにちは!『こんにちは』って言ったね!
返ってきたら成功!!
おめでとうございます 🎉🎉🎉
あなたはもう LINE Bot 開発者です!
📚 今日の宿題
以下のどちらかを試してみてください。(両方でもOK!)
① 「決まった言葉に決まった返事」を追加してみる
例:「おはよう」→「おはよう!今日もがんばろう!」
handle_message の中に if 文を追加するだけでできます。
② Bot の返事をもっと丁寧にしてみる
例:
こんにちは!メッセージありがとう 😊
🔜 次回(第2回)予告
次回は、無料API(天気・Wikipediaなど)を使ってボットに頭脳を追加 します!
- 「東京の天気は?」と聞くと天気を教えてくれる
- 「富士山とは?」と聞くと説明してくれる
など、少しずつ「知能」を持たせていきます。