LINE Messaging APIとGASで簡単チャットボット開発
/ 初心者向け
LINE Messaging APIとGASで簡単チャットボット開発
皆さん、こんにちは!GAS専門ブロガーの〇〇です。今回は、多くの人が日常的に利用している「LINE」と、Googleが提供する強力な自動化ツール「Google Apps Script(GAS)」を連携させて、オリジナルのチャットボットを開発する方法をご紹介します。
「チャットボット開発って難しそう…」と思っている方もいるかもしれませんが、GASを使えば、プログラミング初心者でも意外と簡単に実現できるんです。今回の記事を読めば、あなたも自分だけのLINEチャットボットを動かせるようになりますよ!
なぜGASとLINE Messaging APIなのか?
Google Apps Script(GAS)の魅力
GASは、Gmail、Google Drive、スプレッドシートなどのGoogleサービスを自動化・連携させるためのJavaScriptベースのプログラミング言語です。特別な開発環境を用意する必要がなく、ブラウザ上でコードを書いて実行できる手軽さが魅力です。これにより、API連携も比較的容易に行えます。
LINE Messaging APIの可能性
LINE Messaging APIを利用することで、LINE公式アカウントを通じてユーザーと双方向のコミュニケーションをとるメッセージングボットを作成できます。テキストメッセージだけでなく、画像、スタンプ、リッチメニューなど、多様な形式でユーザーに情報を届けたり、応答させたりすることが可能です。
これらを組み合わせることで、例えば以下のようなボットが作成できます。
- 情報提供ボット: 天気予報、ニュース、イベント情報などをLINEで配信
- 簡易問い合わせボット: よくある質問に自動で回答
- リマインダーボット: 指定した時間にリマインダーを送信
- 簡単なゲームボット: クイズや簡単なジャンケンゲーム
連携の全体像
GASとLINE Messaging APIを連携させる基本的な流れは以下のようになります。
1. LINE Developersでの設定: LINE Developersコンソールでプロバイダー、チャネルを作成し、各種APIキーやアクセストークンを取得します。
2. GASでのコード記述: LINEから送られてきたメッセージを受け取るためのエンドポイント(Webhook URL)を設定し、受け取ったメッセージを解析して、LINEに返信するためのコードをGASで記述します。
3. Webhookの設定: LINE Developersコンソールで、GASで作成したWebhook URLを登録します。
この流れを具体的に見ていきましょう。
ステップ1:LINE Developersでの準備
1. LINE Developersアカウントの作成とプロバイダーの作成
まずはLINE Developersにアクセスし、アカウントを作成します。その後、「プロバイダー」を作成します。プロバイダーは、サービスやアプリの提供元となるものです。
2. Messaging APIチャネルの作成
プロバイダーを作成したら、その下で「Messaging API」チャネルを作成します。チャネルタイプは「Messaging API」を選択し、必要な情報を入力していきます。
チャネル作成後、以下の重要な情報を控えておきましょう。
- Channel secret: チャネルの秘密情報です。Webhookの検証などに使用します。
- Channel access token: LINE Messaging APIにリクエストを送信する際に使用するトークンです。発行後、期限がある場合があるので、必要に応じて再発行します。
3. Webhook URLの設定
チャネル設定画面の「Messaging API」タブで、「Webhook URL」を設定します。ここには、後ほどGASで作成するスクリプトのURLが入ります。
ステップ2:GASでのチャットボット実装
1. 新規GASプロジェクトの作成
Googleドライブを開き、「新規」→「その他」→「Google Apps Script」を選択して、新しいスクリプトプロジェクトを作成します。
2. doPost関数とWebhook
LINE Messaging APIは、ユーザーがメッセージを送信すると、設定したWebhook URLに対してPOSTリクエストを送信します。GASでこのリクエストを受け取るためには、doPost(e)関数を記述する必要があります。この関数が、LINEからのメッセージを受け取る受付係となります。
function doPost(e) {
var json = JSON.parse(e.postData.contents);
var replyToken = json.message.replyToken;
var type = json.message.type;
var text = '';
if (type === 'text') {
text = json.message.text;
}
// ここにメッセージに応じた応答処理を記述します
var replyText = "お天気についてですね!";
sendLineMessage(replyToken, replyText);
return ContentService.createTextOutput(JSON.stringify({'content': 'OK'})).setMimeType(MimeType.JSON);
}
このコードでは、LINEから送られてきたJSONデータを解析し、replyToken(返信に必要なトークン)と、メッセージのtype、そしてtext(メッセージ内容)を取得しています。今回の例では、テキストメッセージが送られてきた場合のみ処理しています。
3. LINEへの返信処理
LINEにメッセージを返信する際は、https://api.line.me/v2/bot/message/replyというエンドポイントに対してPOSTリクエストを送信します。これには、先ほど取得したChannel access tokenとreplyTokenが必要になります。
function sendLineMessage(replyToken, message) {
var channelAccessToken = 'YOUR_CHANNEL_ACCESS_TOKEN'; // ここに your channel access token を入力
var url = 'https://api.line.me/v2/bot/message/reply';
var headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + channelAccessToken
};
var payload = {
'replyToken': replyToken,
'messages': [
{
'type': 'text',
'text': message
}
]
};
var options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
YOUR_CHANNEL_ACCESS_TOKENの部分は、LINE Developersで取得したあなたのChannel access tokenに置き換えてください。
4. デプロイとWebhook URLの取得
コードを記述したら、GASプロジェクトをデプロイします。右上の「デプロイ」ボタンから「新しいデプロイ」を選択し、タイプを「Webアプリケーション」としてデプロイします。デプロイ後、表示される「Web アプリケーションの URL」が、LINE DevelopersのWebhook URLとして使用します。
ステップ3:LINE DevelopersでのWebhook URL設定
ステップ1で取得したチャネル設定画面に戻り、「Webhook URL」に、ステップ2でデプロイして取得したGASのWebアプリケーションURLを入力します。「検証」ボタンを押して、正しく連携できているか確認しましょう。
実際にテストしてみよう!
これで準備は完了です!LINEであなたの公式アカウントにメッセージを送ってみてください。GASで記述した応答が返ってくるはずです。
さらに発展させるには
今回の例は非常にシンプルですが、GASの強力な機能を使えば、さらに高度なボットを作成できます。
- Googleスプレッドシートとの連携: スプレッドシートに保存したデータを参照して応答する。
- Googleカレンダーとの連携: イベントの登録や確認を行う。
- 外部APIの利用: 天気予報APIやニュースAPIなどを利用して、よりリッチな情報を提供する。
まとめ
いかがでしたでしょうか?Google Apps ScriptとLINE Messaging APIを連携させることで、手軽にオリジナルのLINEチャットボットを作成できることがお分かりいただけたかと思います。GASの学習と合わせて、ぜひ色々なチャットボット開発に挑戦してみてください!
次回もお楽しみに!
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。