Google Apps Script @福岡

GASで面白Webサービス&コスト削減や!

Google Apps Script 講座初級編「GASでLINE Notfiyを利用し通知をする」

はじめに

後藤銃士です。健康大事です。いやーほんとに。

前回予告していた「LINE での通知」の実装を行います。LINE での通知には実装が2種類あります。

  • LINE Notify … Webサービスと連携し、Webサービスから通知を受け取る

  • LINE Messaging API … LINEユーザーと双方向でやり取りを行う

今回はこちらからデータを送ることは想定していないので、通知を受け取るLINE Notifyを利用します。外部のサービスを利用すると、ぐっとプログラムしている気分になりますね。

この機能が役に立つのは

GAS で LINE に通知をしてみたい人向け

講座スタート

いつもどおりコピペだけで大丈夫です。が、その前にLINE Notfity を利用するために「アクセストークン」というものが必要になりますので、まずはその解説から。

外部のサービスを使うので準備が必要となります。今回はLINEのアクセストークン、というものが必要となります。

アクセストークンとは

LINE Notify を利用するには、LINE のアカウントが必要です。そしてサービスを利用するためにアクセストークンを取得する必要があります。

アクセストークンとはざっくりいうと、特定の人向けに用意された合言葉で、LINEはこれをみて、あー、〇〇さんがLINE Notifiy を使っているんだなーと判断するための材料となるわけです。

取得の手順は、https://notify-bot.line.me/ja/ にアクセスします。

f:id:jijyoronn:20190113170603p:plain

ログインすると右上にご自身の名前が出てきます。

f:id:jijyoronn:20190113170832p:plain

クリックするとメニューが出ます。そこでマイページをクリック。 画面の下にいくと、「アクセストークンの発行」というボタンがあるので押下します。(←これ「おうか」って読むんですよね。最初これ読めなくて恥をかいた記憶があります…)

f:id:jijyoronn:20190113170941p:plain

すると、「トークンを発行する」画面がでてきます。

f:id:jijyoronn:20190113171255p:plain

ここで発行するトークンの設定を行います。「1:1でLINEで Notifyから通知を受け取る」を選択した場合、「LINE Notify」というアカウントにメッセージが表示されます。また、特定のトークルームに通知したい場合は、事前にトークルームを作っておくとよいです。

今回は「LINE Notify テスト」というトークルームを作っています。

ここで「発行する」を押すと、アクセストークンが発行されますので、どこかにメモしておきましょう。

f:id:jijyoronn:20190113171401p:plain

用意が出来ましたか?では、

新しくタブを開き「script.google.com」を入力してコードを書ける状態にして下さい。

そして今回は、コード.gs にまるっとコピペして下さい。 アクセストークンはさきほどメモしたものに差し替えましょう。 なお、

function myFunction() {
  var message = "テスト";
  sendHttpPost(message);
}

function sendHttpPost(message){
  var token = "あなたのアクセストークン";
  var options =
   {
     "method"  : "post",
     "payload" : "message=" + message,
     "headers" : {"Authorization" : "Bearer "+ token}

   };

   UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}

f:id:jijyoronn:20190113171531p:plain

それでは実行してみましょう…と、その前に。「LINE Notify テスト」に「LINE Notfity」を招待しておいて下さい。 では実行して下さい。 なお、実行する際は、 myFunction を選択して「実行」すること。

f:id:jijyoronn:20190113171553p:plain

※なお、例によって権限の許可について聞かれますので各自適宜対応して下さい。

このようにトークルームにメッセージが表示されます。

f:id:jijyoronn:20190113171836p:plain

今回は新しく、関数を分けています。実行しているのは、myFunction() ですが、その中で sendHttpPost(message) を呼び出しています。すると、6行目以降の関数が実行されるわけですね。で実行の際、呼び出し元の message 内容を引き継ぎます。

ですから myFunction() で指定した「テスト」という文言が渡され、結果 UrlFetchApp.fetch によりLINEへとデータを渡しているのですね。

表示したいメッセージを変えたければ、呼び出し元の message を変えるだけでよい、ということなります。複数送りたければ、

function myFunction() {
  var message = "テスト";
  sendHttpPost(message);
  message = "テストその1";
  sendHttpPost(message);
  message = "テストその2";
  sendHttpPost(message);
}

と書けばどんどん増やすことも可能です。

このように最初は少しめんどうですけどきちんと準備してあげれば LINE にメッセージを表示させることが至極簡単であることが理解出来たのではないでしょうか。

次回、Gmail 検索とLINE Notfiy を組合せて「Gmail に予約本到着メールが届いたら、Line で通知する」を作りたいと思います。

今回は以上となります。

それでは、ご覧いただきありがとうございました。