📤

GoogleAppsScript(GAS)でサーバーレスなLINE BOTを作成する

2024/12/11に公開

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を作成します。
https://entry.line.biz/start/jp/

 
 
試験的に作成するだけなので、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アカウントにログインしていない場合はログインしてください。
https://script.google.com/home
 
 
 
画面左上の「新しいプロジェクト」をクリックします。

 
 
プロジェクトの編集画面が表示されます。
プロジェクト名や .gsファイル名はわかりやすいよう任意で変更してください。

 
 
動作検証のため、「LINE公式アカウントを友達登録している全員に任意のメッセージを送信する」という簡素なコードを用意しました。
まずは以下のコードをコピーして、プロジェクトのエディターエリアに貼り付けてください。

Main.gs
// (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のコンソールを開きます。
https://developers.line.biz/console/
 
 
画面左側にあるメニューの「プロバイダー」を展開し、先ほど設定したプロバイダー名を選択後、先ほど作成したLINE公式アカウントを選択します。

 
 
画面中央のメニューより「Messaging API設定」を選択し、下へスクロールします。

 
 
チャネルアクセストークンからは少し逸れますが、スクロール途中で出てくるQRコードをお手持ちのスマホを読み取って、先ほど作成したLINE公式アカウントを友達登録してください。動作確認に使用します。

 
 
最下部までスクロールすると、「チャネルアクセストークン」の項目があります。このトークンを発行して、先ほどのコードの XXXXXXX の部分に貼り付けてください。
 ※チャネルアクセストークンが漏洩すると、意図しない第三者にチャネルを使用される可能性があります。万一漏洩してしまった場合は再発行してください。

Main.gs
// (1)チャネルアクセストークン
const ACCESS_TOKEN = "XXXXXXX";


 
 
 

(2)送信したいメッセージの入力

実際にメッセージとして送信したいテキスト入力してください。
改行コードを入れれば通常通り改行可能です。
(画像を送信する方法もありますが、今回は割愛します。)

本手順で作成したLINE公式アカウントのアカウント名に合わせ、それらしい紹介文を入力しておきます。

Main.gs
// (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