「自分だけのLINEボットを作ってみたいけど、サーバーとか難しそう…」 そう思っていませんか?
実は、Google Apps Script (GAS) と LINE Messaging API を使えば、サーバー代0円、環境構築もブラウザだけで完結するボットが作れるんです!
今回は、プログラミング初心者の方でも分かるように、LINEボットの「目と耳(LINE側)」と「頭脳(GAS側)」をつなぐ手順を解説します。
🛠 仕組みのイメージ
- LINE (Messaging API): ユーザーからのメッセージを受け取る「窓口」
- GAS (Google Apps Script): メッセージに対してどう返事をするか考える「頭脳」
この2つをWebhookという技術でつなぎます。
手順1:LINE Developersでチャンネル作成
まずは「LINE側」の準備です。
- LINE Developersコンソールにアクセスしてログイン。
- プロバイダー(フォルダのようなもの)を作成。
- **「Messaging API」**のチャンネルを新規作成。
- 作成後、以下の2つの「鍵」をメモしておきます。
- チャネルシークレット(基本設定タブ)
- チャネルアクセストークン(長期)(Messaging API設定タブ)
手順2:GASで「頭脳」を作る
次に「GAS側」でプログラムを書きます。
- Googleドライブから「Google Apps Script」を新規作成。
- 以下のコードをコピペします(
CHANNEL_ACCESS_TOKENには先ほどのトークンを入れます)。
JavaScript
// さっき取得した「チャネルアクセストークン(長期)」をこの下の '' の中に入れてください
const CHANNEL_ACCESS_TOKEN = 'ここに長いアクセストークンを貼り付け';
function doPost(e) {
// LINEから送られてきたデータを取り出す
const json = JSON.parse(e.postData.contents);
const events = json.events;
// イベントごとに処理(基本は1つですが、念のためループ)
events.forEach(function(event) {
if (event.type === "message" && event.message.type === "text") {
const replyToken = event.replyToken;
const userMessage = event.message.text;
// LINEに返信する
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': replyToken,
'messages': [{
'type': 'text',
'text': 'あなたが言ったのは: ' + userMessage,
}],
}),
});
}
});
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
- デプロイ(ウェブアプリとして公開)を行います。
- アクセス権限を**「全員」**にするのが最大のポイントです!
- 発行された ウェブアプリURL をコピーします。
手順3:2つをつなぐ(Webhook設定)
最後に、LINE側にGASの住所(URL)を教えます。
- LINE Developersに戻り、「Messaging API設定」タブへ。
- Webhook設定にGASのURLを貼り付け、「Webhookの利用」をONにします。
- 公式アカウント機能の設定で「応答メッセージ」をオフにします(これがないと、自動返信と被ってしまいます)。
🎉 完成!
これで、ボットに「こんにちは」と送ると、「あなたが言ったのは: こんにちは」と返ってくるはずです。
環境構築はこれで完了! ここから、「スプレッドシートに記録する」「AIと会話させる」など、機能をどんどん追加していけます。
