GASでLINE Bot開発!Messaging API連携入門
/ 初心者向け
Google Apps Script (GAS) でLINE Bot開発!Messaging API連携入門
皆さんはLINE Botと聞いて、どのようなイメージをお持ちでしょうか?「開発は難しそう」「専門知識が必要そう」と思われがちですが、実はGoogle Apps Script (GAS) を使えば、比較的簡単にオリジナルのLINE Botを作成することができます。
本記事では、GASとLINE Messaging APIを連携させ、簡単なLINE Botを開発する手順を、初心者の方にも分かりやすく解説します。
なぜGASでLINE Bot?
GASは、Google Workspace(Gmail, スプレッドシート, ドキュメントなど)と連携し、様々な自動化を実現できるJavaScriptベースのプラットフォームです。
- 手軽さ: プログラミング環境の構築が不要で、ブラウザ上で開発できます。
- 無料: Googleアカウントがあれば誰でも無料で利用できます。
- Googleサービスとの連携: 普段使っているGoogleサービスと連携させることで、より高度なBotも作成可能です。
これらのメリットから、GASはLINE Bot開発の入門として最適です。
LINE Messaging APIの準備
LINE Botを開発するには、まずLINE Developersで「Messaging API」を利用するための準備が必要です。
1. LINE Developersへの登録: LINEアカウントでログインし、プロバイダーを作成します。
2. Messaging APIチャネルの作成: プロバイダー内に「Messaging API」チャネルを作成します。
3. チャネルシークレットとアクセストークンの取得: 作成したチャネルの詳細画面で、それぞれ「チャネルシークレット」と「アクセストークン」を取得します。これらはGASからLINEにリクエストを送信する際に必要になります。
4. Webhook URLの設定: GASで作成したスクリプトのURLを、Messaging APIチャネルの「Webhook URL」として設定します。これにより、LINEからのメッセージがGASに送信されるようになります。
GASでのLINE Bot実装
それでは、実際にGASでLINE Botを作成してみましょう。
1. GASプロジェクトの作成
Googleドライブを開き、「新規」→「その他」→「Google Apps Script」を選択して、新しいスクリプトプロジェクトを作成します。
2. コードの記述
以下のコードをスクリプトエディタに貼り付けます。YOUR_CHANNEL_SECRETとYOUR_ACCESS_TOKENは、先ほど取得した値に置き換えてください。
function doPost(e) {
const channelSecret = 'YOUR_CHANNEL_SECRET'; // チャネルシークレット
const accessToken = 'YOUR_ACCESS_TOKEN'; // アクセストークン
// LINEからのリクエストを検証(セキュリティのため推奨)
const signature = e.headers['X-Line-Signature'];
if (!validateSignature(e.postData.contents, channelSecret, signature)) {
return ContentService.createTextOutput('Invalid signature').setStatusCode(400);
}
const events = JSON.parse(e.postData.contents).events;
for (const event of events) {
if (event.type === 'message') {
const replyToken = event.replyToken;
const messageText = event.message.text;
let replyMessage = '';
if (messageText === 'こんにちは') {
replyMessage = 'こんにちは!何かお手伝いできることはありますか?';
} else {
replyMessage = '「こんにちは」と送ってみてください。';
}
replyLineMessage(replyToken, replyMessage, accessToken);
}
}
return ContentService.createTextOutput('OK');
}
function replyLineMessage(replyToken, message, accessToken) {
const url = 'https://api.line.me/v2/bot/message/reply';
const headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
};
const payload = JSON.stringify({
'replyToken': replyToken,
'messages': [
{
'type': 'text',
'text': message
}
]
});
const options = {
'method': 'post',
'headers': headers,
'payload': payload
};
UrlFetchApp.fetch(url, options);
}
// リクエストの署名を検証する関数(HMAC-SHA256を使用)
function validateSignature(body, channelSecret, signature) {
const crypto = Utilities.getScriptCrypto();
const hash = crypto.hmacSha256(body, channelSecret);
const encodedHash = Utilities.base64Encode(hash);
return signature === encodedHash;
}
3. デプロイ
1. スクリプトエディタの「デプロイ」→「新しいデプロイ」を選択します。
2. 「実行するコード」で「関数」を選択し、doPost関数を選びます。
3. 「配置」で「Web アプリ」を選択します。
4. 「実行権限」は、ご自身のGoogleアカウントを選択します。
5. 「アクセス」を「全員」に設定します。
6. 「デプロイ」ボタンをクリックします。
7. デプロイが完了すると、Web アプリの URL が表示されます。この URL を LINE Developers の Messaging API チャネル設定の「Webhook URL」に設定します。
テストしてみよう
LINEアプリで、作成したBotを友達追加し、「こんにちは」とメッセージを送ってみましょう。設定が正しければ、Botから返信が届くはずです。
まとめ
GASとLINE Messaging APIを連携させることで、手軽にオリジナルのLINE Botを作成できることがお分かりいただけたかと思います。今回ご紹介したのは基本的な機能ですが、GASの機能を活用すれば、スプレッドシートから情報を取得して返信したり、Gmailに通知を送ったりと、さらに多彩なBotを開発することができます。ぜひ、あなただけの便利なLINE Botを作成してみてください!
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。