GASとLINE Messaging APIで自動応答LINEボットを作成
/ 初心者向け
GASとLINE Messaging APIで自動応答LINEボットを作成
こんにちは!Google Apps Script (GAS) とLINE Messaging APIを連携させて、オリジナルのLINEボットを作成してみませんか?GASを使えば、特別なサーバーを用意することなく、Googleのクラウド上で動作するLINEボットを簡単に実装できます。今回は、初心者の方でも理解できるように、LINE Messaging APIとの連携の基本から、簡単な自動応答ボットの作成方法までをステップバイステップで解説します。
なぜGASとLINE Messaging APIなのか?
- 手軽さ: GASはGoogleアカウントがあればすぐに利用でき、コードの実行環境を自分で構築する必要がありません。
- 連携の容易さ: SpreadsheetやGmailなど、他のGoogleサービスとの連携が容易です。
- 無料: 一定の利用量までは無料で利用できるため、学習コストや開発コストを抑えられます。
- LINE Messaging API: LINE公式のAPIで、リッチなメッセージ送信やユーザーとの対話機能を実現できます。
準備するもの
1. Googleアカウント: GASを利用するために必須です。
2. LINE Developersアカウント: LINE Messaging APIを利用するためのアカウントです。
3. LINE公式アカウント(Messaging API利用設定済み): テスト用のLINEアカウントを作成します。
ステップ1:LINE Developersでの設定
まずはLINE Developersコンソールで、Messaging APIの利用設定を行います。
1. プロバイダーの作成: LINE Developersにログインし、プロバイダーを作成します。
2. チャネルの作成: プロバイダー内にMessaging APIチャネルを作成します。この際、アプリ名や業種などを設定します。
3. アクセストークンの取得: 作成したチャネルの詳細画面で、Channel access token (long-lived) を発行します。このトークンは後でGASからLINE APIを呼び出す際に使用します。秘密にしておきましょう。
4. Webhook URLの設定: GASで作成するスクリプトのURLを指定します。このURLにLINEからメッセージが送られてきます。
ステップ2:GASのスクリプト作成
次に、Google Apps ScriptでLINEからのメッセージを受け取り、応答を返すスクリプトを作成します。
1. スクリプトエディタの起動: Google Driveで新規作成から「その他」→「Google Apps Script」を選択します。
2. コードの記述: 以下のサンプルコードを参考に、スクリプトを記述します。
function doPost(e) {
var json = e.postData.contents;
var message = JSON.parse(json);
var replyToken = message.events[0].replyToken;
var userMessage = message.events[0].message.text;
var replyText = "";
if (userMessage === "こんにちは") {
replyText = "こんにちは!GASとLINE Messaging APIの連携へようこそ!";
} else if (userMessage.includes("ありがとう")) {
replyText = "どういたしまして!";
} else {
replyText = "ごめんなさい、よく分かりませんでした。";
}
// LINE Messaging APIへ返信
var url = "https://api.line.me/v2/bot/message/reply";
var headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_CHANNEL_ACCESS_TOKEN"
};
var payload = {
"replyToken": replyToken,
"messages": [
{
"type": "text",
"text": replyText
}
]
};
UrlFetchApp.fetch(url, {
"method": "post",
"headers": headers,
"payload": JSON.stringify(payload)
});
return ContentService.createTextOutput(JSON.stringify({"content":"success"})).setMimeType(ContentService.MimeType.JSON);
}
YOUR_CHANNEL_ACCESS_TOKEN: ここには、ステップ1で取得したアクセストークンを貼り付けてください。doPost(e): LINEからPOSTリクエストがあった際に実行される関数です。e.postData.contents: LINEから送信されたJSONデータが含まれています。replyToken: 返信に必須のトークンです。userMessage: ユーザーからのメッセージ本文です。UrlFetchApp.fetch(): LINE Messaging APIにリクエストを送信するためのGASの機能です。
ステップ3:GASスクリプトのデプロイとWebhook設定
作成したGASスクリプトをデプロイし、LINE DevelopersにWebhook URLとして設定します。
1. デプロイ: スクリプトエディタの「デプロイ」→「新規デプロイ」を選択します。
- 「タイプ」は「ウェブアプリケーション」を選択します。
- 「実行するユーザー」は「自分」を選択します。
- 「アクセス許可」は、必要に応じて設定します(通常は「全員」で問題ありませんが、セキュリティを考慮する場合は制限します)。
- 「デプロイ」ボタンをクリックします。
2. Webhook URLの取得: デプロイが完了すると、ウェブアプリケーションのURLが発行されます。これをコピーします。
3. LINE DevelopersでのWebhook設定: LINE Developersコンソールに戻り、チャネル設定画面で「Webhook URL」に先ほどコピーしたURLを貼り付け、「検証」ボタンをクリックします。
- 「OK」と表示されれば成功です。
テストしてみよう!
これで準備は完了です!LINEの公式アカウントを友達追加し、先ほど設定したWebhook URLにメッセージを送ってみましょう。
- 「こんにちは」と送ると、GASスクリプトが応答します。
- 「ありがとう」と送ると、感謝のメッセージが返ってきます。
- それ以外のメッセージは、「よく分かりませんでした。」と返信されるはずです。
まとめ
今回は、Google Apps ScriptとLINE Messaging APIを連携させ、簡単な自動応答LINEボットを作成する方法をご紹介しました。GASのdoPost関数とUrlFetchAppを利用することで、外部サーバーなしにLINEボットを開発できることがお分かりいただけたかと思います。
ここからさらに、Spreadsheetにメッセージを記録したり、Gmailで通知を送ったりと、Googleサービスとの連携を深めることで、より高機能なLINEボットを開発することが可能です。ぜひ、色々なアイデアを試してみてください!
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。