見出し画像

GAS超入門⑦ - LINEに通知してみる

はじめに

「LINEでバイトのシフトを通知する」「今日の予定を朝9時に送信する」など、身近なLINEを使うと便利な生活を実現できます。

さらに、webhookを使うことで、LINEから出社したよー、退勤したよーとつぶやくだけで自動的に勤怠システムを作れたりもします。

(これだけで3-5万円くらいで受注できると思います)

今回はまず、LINEに通知するところまでやってみましょう。

LINEのトークンを取得する

トークンを取得するには以下のLINE Notifyのページへ行ってください。

まずは、右上のログインをクリック!

画像1

LINEのログインIDとPWでログインします。

画像2

LINEのID忘れちゃったよーという人は、携帯のLINEから以下の手順で確認してください。

画像3

画像4

画像5


もとのLINE Notifyのページに戻ります。ログインに成功すると、またTOPページに戻るので、自分のアカウント名をクリックして、「マイページ」をクリックします。

画像6


画面の下の方にある「トークンを発行する」ボタンをクリック

画像7


トークン名と、トークルームを選択しろと言われますが、トークン名は分かりやすい名前を適当につけてOKです。

トークルームはテストなので、まずは「1:1でLINE Notifyから通知を受け取る」を選択してください。

画像8
「発行する」をクリックすると、トークンが表示されます。
一回この画面閉じるともう確認する手段が無いので、必ずコピーして起きましょう。

画像9

LINEにメッセージを通知してみる

さて、トークンが取得できたら準備OKです。

まずはいつもどおりスクリプトエディタを新規作成して以下のコードを書きましょう。

function sendLINE() {
 let messageText = `【残業警告】すでに今月の残業時間が40時間を超えています。\n
 45時間を超えないように気をつけてください`
 
 // LINEから取得したトークン
 let token = "【先程取得したトークン】"
 let options = {
   "method" : "post",
   "headers" : {
     "Authorization" : "Bearer "+ token
   },
   "payload" : {
     "message" : messageText
   }
 }


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

たったこれだけです。一応解説していきましょう。

まず、最初のmessageTextの部分。これはLINEに通知するメッセージです。
例えば、スプレッドシートから取得したデータをLINEに通知する場合は、ここをスプレッドの値を代入する感じになります。

スクリーンショット 2020-07-10 01.02.20


さて、ここでは、HTTP通信するのに必要な情報を設定してます。
今回は、APIからデータを取得するのではなく、APIを通じてデータを送信(上のメッセージ)するので、その場合のリクエストメソッドはPOSTでしたね。

また、headersの中に、認証情報を入れてます。ここに先程取得したトークンを入れることで、「ぼく」と認識されます。

payloadの中に送信するメッセージを入れてあげましょう。

スクリーンショット 2020-07-10 01.02.45


さて最後、urlに記載してるのは、LINE NotifyのURLです。
これに、UrlFetchAppオブジェクトのfetchメソッドをつかってLINE Notify APIのURLに対して、上のオプション情報(POSTで、トークンを指定して、送信するメッセージを入れて)送信します。

スクリーンショット 2020-07-10 01.02.50

これを実行すると...

画像13

さぁ!自分の携帯を確認してみてください。

通知がきてます!

簡単ですね!

実践編で利用するための基礎編はすべて無料公開してます。 基礎編のモチベーション向上のためにサポートして頂けるとめちゃくちゃ喜びます!! だいたい作業工数は1記事あたり4-5時間程度かけて【分かりやすい】【知識が身につく!】を意識して作っておりますので、今後も頑張っていきます!