「LINE Bot作ってみたいんだけどよく分からなくて」という話、周りでも何度か聞いたことがあります。自分も最初そうでした。公式ドキュメントを開くと設定項目がずらっと並んでいて、心が折れそうになります…。Simple Line Botは、そんな心配は必要ありません!
やることは本当に少なくて、LINE Messaging APIの「チャネルアクセストークン」と「チャネルシークレット」(パスワードみたいな数字や文字でできたコード)、この2つを設定ファイルに貼るだけで動くようにしました。
これらはLINE Messaging APIの管理画面ですぐに発行できます。
複雑な初期設定は全部こっちで吸収して、「とりあえず動いた!」までの距離を最短にすることだけ考えて作っています。
Simple Line BotはAIを利用しないため、そもそもAIへの別途契約も必要なければ、クレジットカードの登録といった不安で面倒な手続きも不要です。
実際、自分で最初にテストしたときも5分かからず返信が返ってきて、拍子抜けするくらい呆気なかったです。狙い通りではあるんですが。
機能もわざと絞ってあって、特定のキーワードを含むメッセージに決まった返信をするだけの「部分一致応答」しかできません。多機能にするほど設定も複雑になるので、まずは「返信botってこういうものか」を体験してもらうことを優先しました。
ここから発展させてAIと連携するAI LINE Botも作ったんですが、あっちを作ったあとに改めてこっちを見返すと、「シンプルさって足すより引く方が難しいな」としみじみ思います。
まずは、Simple Line Botから無料で試していただき、どうしても高機能なボットが欲しい、もっと複雑な質問にも柔軟に回答をしてほしいとなった場合、AI LINE Botを検討する、という流れがおすすめです。
複数キーワードがマッチした場合は「登録順」で決定
functions.phpのfindResponse()が、$responses配列を上から順にmb_strpos()でチェックし、最初に一致したものを即座に返す実装です。
foreach ($responses as $keyword => $answer) {
if (mb_strpos($userMessage, $keyword) !== false) {
return $answer;
}
}
優先順位は完全に「配列に登録した順番」で決まり、文字数の長さは一切関係ありません。これは仕様として意図的なもので、responses.phpのコメント内にも「より具体的なキーワードを先に、広い意味の言葉は後ろに書いてください」と明記しています。サンプル(responses_sample.php)でも「予約 個室」を「予約」より前に置くことで、この挙動が伝わるようにしています。
署名検証はHMAC-SHA256 + hash_equals
functions.phpのverifyLineSignature()で実装しています。
function verifyLineSignature($body, $signature, $channelSecret)
{
if (empty($signature)) {
return false;
}
$hash = hash_hmac('sha256', $body, $channelSecret, true);
$expectedSignature = base64_encode($hash);
return hash_equals($expectedSignature, $signature);
}
リクエストボディ(php://input)をチャネルシークレットでHMAC-SHA256署名し、base64エンコードしたものと、ヘッダーのX-Line-Signatureをタイミング攻撃耐性のあるhash_equals()で比較しています。これはwebhook.phpの冒頭、他の処理より先に必ず通す形にしています。
よくある設定ミスとは?
ここはアプリの機能的に…というものでは無いのですが、開発の過程で実際に発生した「設定ミス」に近いものを挙げると、次の4件です。
- LINE公式アカウント標準の「応答メッセージ」をOFFにし忘れて、返信が二重に届く(README・LPでも繰り返し注意喚起しています)
- 配布ZIPのファイル名を変更した際、
download_config.php側の実ファイルパスだけを直して、index.html側のリンク(file=パラメータ)を直し忘れ、「ファイルが見つかりません」になった stats.phpの合言葉が一致せず「アクセスできません」になる(日本語や記号を含む合言葉が原因だった)- LINEアプリ内蔵ブラウザからのダウンロードができない(これは対策済み)
一応、設定でつまずきやすいポイントとして挙げておきます。
初めての自動化への対応には最適です。
Simple Line Botは、これからLINEの自動化を検討されている方にとっては最適なツールになるはずです、費用も一切かかりませんし、設定がとにかく簡単、楽です! また仕組みを把握しやすいので、どのタイミングでAIを利用したボットに変更を検討したらよいのか?という部分をご自身で把握できます。
もし「LINEで何か自動化してみたい」「こういう時に自動で返信してくれたらな」と思っているなら、まずはこのSimple Line Botから使ってみてください!👇
