【GAS】LINE Notifyでスプレッドシートでの編集を検知してLINEに通知する方法

GASでLINE通知 API

こんにちは!
おでぃーです。

今回は、LINE Notifyを使ってスプレッドシートで編集があったときにLINEに通知する方法を紹介します。

スプレッドシートを複数人で共有している場合や、何らかの入力フォームとして使用している場合、シートに編集があったことを知りたいときってありますよね。

今から紹介する内容を実装すれば、手元にあるLINEに編集通知を送ることができるんです!

しかも、少しカスタマイズすれば検知するセル範囲や通知内容も変更することができます。

この方法は大きく分けて2つの処理から成り立っています。

1、スプレッドシートでの編集を検知
2、LINEに通知

なので、両方知りたい方はもちろん、片方だけでいいから知りたい!という方もぜひチェックしてみてくださいね!

全くGASの知識がなくても簡単に実装できるように丁寧に説明していきます。

この記事を書いた人
おでぃー

GASを使った業務自動化に関するテクニックを発信。
本業ではプロダクト開発でエンジニアのディレクションをしながら、副業にてブログ運営やツール・スキルの販売を実施。
ネット広告運用経験からSNS領域の自動化に注力。

おでぃーをフォローする

LINE Notify アクセストークンの発行

LINEと連携するためにAPIを使います。
そしてAPIを使うためにはアクセストークンが必要になります。

こちらのページを参考にアクセストークンを発行しましょう。

アクセストークンが何かわかってなくても問題ないので、発行できたらコピーして先に進みましょう!
今後もLINEと連携するときに再度必要になってくることもあるので、Googleドキュメントなどに保存しておくのがおすすめです。

GASプロジェクトの作成

まずはGASプロジェクトを作成します。

詳しい方法は下記の記事で紹介していますので参考にしてください。

スクリプトの作成

今回は例として、セル範囲A2:Aにあるチェックボックスにチェックが入ったらLINEに通知する処理を実装します。

コード.gsに下記のスクリプトをコピペし、必要に応じてセル範囲や通知メッセージを変更してください。

(コード.gsにもともと記載されているスクリプトは全部消してOK)

function onEdit(e) {
  var spreadsheet = e.source;
  var sheet = spreadsheet.getSheetByName("[シート名]");
  var range = e.range;
  
  // 監視する範囲(A2:A)以外の変更なら処理を終了
  // 範囲を変更したければgetColumnとgetRowの後の数字を変更
  if (range.getColumn() !== 1 || range.getRow() < 2) {
    return;
  }
  
  var checkboxValue = range.getValue();
  
  // チェックが入った場合
  if (checkboxValue === true) {
    sendLineNotification("シートに編集がありました!");
  }
}

function sendLineNotification(message) {
  var accessToken = "[LINEアクセストークン]"; 
  var options = {
    "method": "post",
    "headers": {
      "Authorization": "Bearer " + accessToken,
      "Content-Type": "application/x-www-form-urlencoded"
    },
    "payload": "message=" + encodeURIComponent(message)
  };
  
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

ここで使われているonEdit(e)関数が今回のカギとなります!

onEdit(e)はスプレッドシートの編集をトリガーに処理を実行させることができる関数です。

onEdit(e)の起動によって取得したセル情報がeに入るので、セルの場所によってその後の処理を分岐させるスクリプトを加えています。

スクリプトの実行

今後、onEdit(e)関数を機能させるためには、一度手動での実行を通して権限許可する必要があります

詳しい方法は下記の記事で紹介していますので参考にしてください。

実行完了後、実行ログではエラーがでるかと思いますが、スプレッドシートを編集していないことが要因なので問題ありません。

トリガーの設定

最後にトリガーの設定をします。

左メニューから「トリガー」を選択。

「新しいトリガーを作成します」または「トリガーを追加」を選択。

設定画面がでるので、下記と同じになるように設定し保存。

これでトリガーの設定は完了です!

用意したチェックボックスにチェックをいれるとLINEに通知がくるはずなので確認してみてください!

まとめ

今回は、スプレッドシートが編集されたときにLINEに通知する方法を解説しました。

チェックボックスの位置を変えるだけで十分汎用性がありますが、スクリプトをカスタマイズすることで編集内容の指定や通知内容を変更するなどの応用も効きますね!

ぜひ実装してみてください。

コメント