見出し画像

LINE Notifyを使ってGASからLINEに通知を送ろう

ちょっと紹介したいことがあって、取り急ぎGASからLINEに通知が送れるLINE Notifyの設定方法の紹介をします。

アクセストークンの発行

まず以下の公式サイトにLINEアカウントを使ってログインします。

右上のアカウント横矢印からマイページを選択

続いてアクセストークンを発行します。

トークン名を適当に付けておき、通知を送信するトークルームを選びます。今回は自分だけとの1:1のトークルームを指定しました。

トークンが発行されるので、こちらを控えておきます。

これでLINE側の事前準備は完了です。

LINE Notifyにメッセージを送信するクラス

クラスについては以前の記事でもふれました。

クラスは「コードの再利用性が向上し、同じコードを繰り返し書く必要がなくなるもの」です。

今回はクラス化するほどの複雑なコードではありませんが、これだけ関数というのも気持ち悪いのでクラス化しました。

// last update 2024-07-07

/**
 * LINE Notifyにメッセージを送信するクラス
 * 
 * プロパティ:
 * - accessToken - LINE Notifyのアクセストークン
 * - url - LINE NotifyのAPIエンドポイントURL
 * 
 * メソッド:
 * - send(message) - メッセージを送信するメソッド
 * 
 */

'use strict'

class LineNotify {
  /**
   * コンストラクタ
   * @param {string} accessToken - LINE Notifyのアクセストークン
   */

  constructor(accessToken) {
    this.accessToken = accessToken;
    this.url = 'https://notify-api.line.me/api/notify';
  }

  /**
   * メッセージを送信するメソッド
   * @param {string} message - 送信するメッセージ
   */

  send(message) {
    // 送信するデータを作成する
    const objPayload = { message: message };

    // オプションを設定する
    const objOptions = {
      method: 'post',
      headers: { 'Authorization': 'Bearer ' + this.accessToken },
      payload: objPayload
    };

    // リクエストを送信する
    const response = UrlFetchApp.fetch(this.url, objOptions);

    // レスポンスをログに出力する
    return response.getContentText();
  }
}

/**
 * LineNotifyクラスを使ってLINE Notifyにメッセージを送信するテスト関数
 */

function testLineNotify() {
  // アクセルを設定
  const accessToken = PropertiesService.getScriptProperties().getProperty('LINE_NOTIFY_TOKEN');
  // テスト送信するメッセージ
  const message = 'こんにちは!これはテストメッセージだよ。';
  // メッセージを送信
  new LineNotify(accessToken).send(message);
}

最後のほうにtestLineNotify()関数を用意しています。

スクリプトプロパティに先ほど控えたアクセストークンを格納するなどしてメッセージ送信をテストしてみてください。

テスト成功

ここから先は

0字

アーリーバードプラン

¥500 / 月
人数制限あり
このメンバーシップの詳細

この記事が気に入ったらサポートをしてみませんか?