GoogleAppsScript(GAS)でサーバーレスなLINE BOTを作成する
0.GoogleAppsScriptとは
Google Apps Script(GAS)は、Googleのクラウド上で動作するJavaScriptベースのスクリプト言語、あるいはその実行環境を指します。
通常はGoogle Workspace製品をカスタマイズ及び自動化するために使用されますが、スクリプトを定期実行する仕組み(トリガー)を備えており、Webhookも利用することで簡易な処理であればサーバレスで実行することが可能です。
本記事では、習熟のためにLINEのAPIをGAS上で利用して「メッセージを定期的に送信するLINE BOT」を作成する手順をご紹介します。
あらかじめ用意いただきたいもの
・Googleアカウント
・LINE個人アカウント(普段からお使いのものでOK)
1.LINE公式アカウントを作成する
本記事ではLINEが提供している「Messaging API」を利用するため、LINE公式アカウントの作成を行います。
「LINE公式アカウントをはじめる」からLINEビジネスIDを作成します。
試験的に作成するだけなので、LINEアカウントに紐づけるよりも
「メールアドレスで登録」をおすすめします。
LINEビジネスIDの作成が完了すると、次はLINE公式アカウントの詳細な設定画面に入ります。
入力内容が後続の手順に影響を与えることはありませんので、任意の情報を入力してください。
(この手順では「ハードロック・メタルバンドを紹介するBOT」のていで情報入力しています)
LINE公式アカウントの作成が完了すると、LINE Official Account Managerの管理画面に入ります。
画面右側の「設定」を押下してください。
画面左のメニューの「Messaging API」を選択後、「Messaging APIを利用する」を押下してください。
LINE Developersへの登録や、プロバイダー名の登録を求められるので、必要事項を入力して登録してください。
Messaging APIの利用登録が完了すると、Channel情報やWebhook URLの入力欄が表示されます。
(本手順ではこの情報を使用しませんので、表示されたことのみ確認できればOKです)
これでLINE側の準備は完了です。
2.GoogleAppsScriptでコードを用意する
GAS上で実際に動作させるコードを作成します。
Apps Scriptにアクセスします。
Googleアカウントにログインしていない場合はログインしてください。
画面左上の「新しいプロジェクト」をクリックします。
プロジェクトの編集画面が表示されます。
プロジェクト名や .gsファイル名はわかりやすいよう任意で変更してください。
動作検証のため、「LINE公式アカウントを友達登録している全員に任意のメッセージを送信する」という簡素なコードを用意しました。
まずは以下のコードをコピーして、プロジェクトのエディターエリアに貼り付けてください。
// (1)チャネルアクセストークン
const ACCESS_TOKEN = "XXXXXXX";
// (2)送信したいメッセージ
var message = 'TEST MESSAGE';
// (3)メッセージ送信処理
function execute() {
var headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN,
};
var postData = {
messages: [
{
type: 'text',
text: message.toString(),
},
],
notificationDisabled: false
};
var options = {
method: 'post',
headers: headers,
payload: JSON.stringify(postData),
};
// メッセージ送信
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/broadcast', options);
}
次に、貼り付けたコードを編集していきます。
(1)チャネルアクセストークンの取得
先ほど作成したLINE公式アカウントに紐づくトークンを取得します。
LINE Developersのコンソールを開きます。
画面左側にあるメニューの「プロバイダー」を展開し、先ほど設定したプロバイダー名を選択後、先ほど作成したLINE公式アカウントを選択します。
画面中央のメニューより「Messaging API設定」を選択し、下へスクロールします。
チャネルアクセストークンからは少し逸れますが、スクロール途中で出てくるQRコードをお手持ちのスマホを読み取って、先ほど作成したLINE公式アカウントを友達登録してください。動作確認に使用します。
最下部までスクロールすると、「チャネルアクセストークン」の項目があります。このトークンを発行して、先ほどのコードの XXXXXXX の部分に貼り付けてください。
※チャネルアクセストークンが漏洩すると、意図しない第三者にチャネルを使用される可能性があります。万一漏洩してしまった場合は再発行してください。
// (1)チャネルアクセストークン
const ACCESS_TOKEN = "XXXXXXX";
(2)送信したいメッセージの入力
実際にメッセージとして送信したいテキスト入力してください。
改行コードを入れれば通常通り改行可能です。
(画像を送信する方法もありますが、今回は割愛します。)
本手順で作成したLINE公式アカウントのアカウント名に合わせ、それらしい紹介文を入力しておきます。
// (2)送信したいメッセージ
var message =
'【Children of Bodom】' + '\n' +
'チルドレン・オブ・ボドム(Children of Bodom)は、フィンランド出身のデスメタル・バンド。' + '\n' +
'https://ja.wikipedia.org/wiki/%E3%83%81%E3%83%AB%E3%83%89%E3%83%AC%E3%83%B3%E3%83%BB%E3%82%AA%E3%83%96%E3%83%BB%E3%83%9C%E3%83%89%E3%83%A0'
;
これでGAS側の準備も完了です。
3.LINE公式アカウントからメッセージを送信させる
GASのプロジェクト画面より、「実行」ボタンを押下してください。
上手く行けば、先ほど作成したLINE公式アカウントからメッセージが送信されているはずです。
実際に受信したときのスマホ側の画面がこちら。
無事にメッセージの送信が成功したならば、GASのプロジェクト画面左にある「トリガー」を選択し、画面右下の「トリガーの追加」から、このプログラムを定期実行する計画を作成することでBOTのような動作をさせることが可能です。
4.そのほかできること
GASはGoogleスプレッドシートやGoogleドライブなど、他のGoogle製品との連携が可能です。
そのため、GASで「Googleスプレッドシートに記載したメッセージを読み取る」処理や「Googleドライブに保存されている画像データを取得する」処理を実装することで、ここまで作成したLINE BOTに複雑なメッセージや画像の送信機能を持たせることもできます。APIの機能を利用すれば、スマホでLINE公式アカウントへ向けて発言したメッセージに対して、特殊な応答を返すよう実装することも可能です。
是非お試しください。
Discussion