【GAS】GoogleスプレッドシートからLINEにメッセージを送る方法(トークルームの作成、LINE Notify APIの登録)

LINEとの連携

LINEとの連携一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS基礎講座】明日の予定がある場合のみLINEに送信する方法 Q&A
  • GASで明日の予定を取得する方法がわかります。
  • 今日の予定をLINEに送信するスクリプトの変更方法がわかります。
  • 今回は、GoogleスプレッドシートからあなたのLINEに
    メッセージを送れちゃう方法をお伝えします。

     

    この記事を読むことであなたは、

    • 簡単にスプレッドシートからLINEにメッセージが送れます。
    • スプレッドシートに貼り付けたボタンからマクロを起動することができます。

    たとえあなたが

    あなた:「マクロなんか嫌!てかGASって何?」

    っていう状態でGAS(Google Apps Script)が
    何のことかわからなくても
    まったく大丈夫です。


    あなたの大好きなコピペだけで
    スプレッドシートに書いた文字列が
    LINEに送られるようになります。

    準備するもの

    あなた:「えーっと、準備するものは。」

    あなた:「LINEのアカウントにグループと。それから、ん、トークン?」

    あなた:「トークン?

     

    大丈夫です。それもコピペでOKです。

     

    とにかく最終的には、スプレッドシート上の
    「LINEへ送信」ボタンをクリックするだけで

    スプレッドシートに書いた文字列が
    こんなふうにあなたのLINEに送られます。

     

    スプレッドシートとあなたのLINEが
    融合する奇跡の瞬間です。

    マインドセットします。

    マインドセット
    ちょっとコピペするだけで奇跡の瞬間が訪れる

     

    ぶっちゃけ、ちょっとメンドイ作業ですが、
    ここまで読んでくださった「意識高い系」の
    あなたであれば、必ず実現できます。

    では、動画を見ながら
    実際に設定してみてください。

    動画はこちら

    GoogleスプレッドシートからLINEにメッセージを送信する方法[字幕あり]

    以下は、動画内で出てきた説明箇所です。

    トークルームの作成

    ちょっと説明が冗長ですが、ようは、
    LINEのグループを用意すればいいだけです。

     

    Step1.

    ①上の(吹き出しマーク)をクリック

     

    Step2.
    [グループ]をタップする

     

    Step3.

    ①[次へ]をクリックする

     

     

    Step4.

    ①適当に名前を入力する
    ②[作成]をクリックする

     

    Step5.

    出来上がり

     

     

    LINE Notify APIの登録

     

    LINE Notify
    LINE NotifyはGitHub,IFTTT,MackerelなどのWebサービスからの通知を、LINEで受信することが出来る便利なサービスです。

     

     

     

     

    LINE Notifyを招待する

    Step1.

    ①右上の三本線をクリックする

    Step2.

    ①招待をタップする

    Step3.

    ①LINE Notifyをタップする

    ②招待をタップする

     

     

     

    使用するスクリプト

    var LINE_NOTIFY_TOKEN = "ラインのトークン";
    var LINE_NOTIFY_API = "https://notify-api.line.me/api/notify";
    
    //LINEにメッセージを送る
    function sendLineMessage(msg) {
      var response = UrlFetchApp.fetch(LINE_NOTIFY_API, {
        "method": "post",
        "headers": {
          "Authorization": "Bearer " + LINE_NOTIFY_TOKEN
        },
        "payload": {
          "message": msg
        }
      });
    }
    
    //test
    function main() {
      sendLineMessage("テストです");
    }
    
    //スプレッドシートから送信
    function sendSpMsg() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var values = sheet.getRange("A1").getValue();
      sendLineMessage(values);
    }

    使用したシートはこちら

    ※クリックするとシートが開きます。

     

    では、今回のGoogleシートマスターへの究極の方法です。

    Step1.
    LINEに通知用のグループを用意する

    Step2.

    「LINE Notify API」を登録する

    Step3.
    LINE Notifyを招待する

    Step4.
    スクリプトをコピペする

    以上です。

    では、早速 スマホを手に取り、LINEに通知用の
    グループを用意してください。

    今すぐです。

    スプレッドシートからLINEに
    メッセージが届いたら動画にGoodクリックを
    お願いします!

    もし、うまくいかない場合は、
    動画のどこ(分秒)がうまくいかないのかを

    ブログ下のコメント欄で教えてください。

    最後までご覧いただきありがとうございます。

     

    複数のセルを送る場合はこちら

    【GAS】Googleスプレッドシートから複数のセルをLINEに送信する方法 Q&A
  • getValue()とgetValues()の違いがわかります。
  • 複数のセルを一つのセルにまとめる方法がわかります。
  • Googleスプレッドシートから複数のセルを一気にLINEに送信する方法がわかります。
  •  

     

    さらにスタンプ付きの場合はこちら

    スプレッドシートからLINEにスタンプ付きでメッセージを送信
  • スプレッドシートからLINEにスタンプ付きでメッセージを送ることができます。/li>
  • 前回のスクリプトに2行追加するだけで実現できます。
  •  

    LINEとの連携一覧

    コメント

    1. ひろこ より:

      はじめまして。さっそく試してみたところ、ツールのスクリプトという項目が見当たらないのですが、他にどこにありますでしょうか。

      • hiroshi より:

        動画のどのあたりでしょうか?
        具体的なタイムスタンプ(分秒)を教えていただけると助かります。

    2. N村 より:

      こんにちは、いつも素敵な記事を書いてくださいましてありがとうございます。

      やりたいことはこんなことなのですが、具体的な記事がなく困っております。

      スプレッドシートで日々の温泉の入浴者数を書いていきます。遠隔地で月末集計をした数字をもとに入湯税を払います。

      月末になると、スプレッドシートのデータをラインに送りたいです。
      合計を送るというよりはその表そのものを送りたいです。

      送られてきた人は印刷して提出し、お金を払います。

      いかがでしょうか?

      • hiroshi より:

        やることは
        1.集計するシートを作成する
        2.月末にシートのURLをLINEで送付する
        2.は、トリガーを設定するだけなので簡単かと。
        後は1.の集計するシートの仕様を明確にすることですね。

    3. さとる より:

      はじめまして。

      スクリプトをコピーしまして、保存、そして実行をしますと下記のようなエラーが出ております。

      Exception: Request failed for https://notify-api.line.me returned code 400. Truncated server response: {“status”:400,”message”:”message: must not be empty”} (use muteHttpExceptions option to examine full response)

      ご教授の程、宜しくお願い致します。

      • さとる より:

        追記:上記の英文の下に、この文字が表記されております。

        sendLineMessage @ コード.gs:6

      • hiroshi より:

        さとるさんコメントありがとうございます。

        実行した関数は、なんですか?

        動画と同じ操作をしていると思いますが、
        具体的に、何分何秒の操作で上記エラーが発生していますか?

    4. cfq73750 より:

      素敵な記事配信ありがとうございます。

      動作はバッチリ問題ないのですが
      [test] テストです
      ↑この[test]という表記はどうすれば消えますでしょうか。
      構文を見ても全くわからず苦心しています・・・。

    5. 鈴鹿 より:

      こんにちは!質問させてください。
      このスクリプトを参考に初めてLINEへスプレッドシートの内容を送信するのをチャレンジしました。
      単体のセルを送信する事は出来ましたが、複数のセル
      例えば(A1:C10)迄、といった複数のセルに入力されている文字列を送信したいのですが、うまくいきません。

      独自に調べて、

      //スプレッドシートから送信
      function sendSpMsg() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var values = sheet.getRange(‘A1:C10’).getValue();
      sendLineMessage(values);
      }

      のgetValue(); をgetValues();としてみてもだめでした。
      どうしたら、上手くいくでしょうか?

    6. じゅん より:

      こんにちは。
      コピペして実行してみましたが、さとるさんと同エラーが発生して送れません。
      実行ボタンを押下して1秒でエラー発生です。
      どうしたらよいのでしょうか?

      • hiroshi より:

        実行した関数は、なんですか?

        動画と同じ操作をしていると思いますが、
        具体的に、何分何秒の操作で上記エラーが発生していますか?

    7. おみし より:

      こんにちは。いつも素敵な記事ありがとうございます!
      一点ご質問がありコメントさせていただきます。
      複数のLINEグループへ向けてメッセージを送信したいと考えております。
      こちらの記事ですと1グループに向けて送信する構文かと思います。
      そこでGASでは複数のトークンを取得し複数のグループへ送信することは可能でしょうか?
      ExcelVBAを使用して上記のような一斉送信するような物は開発したことはありますが、GASではどうしたら良いかわからず、お知恵をお借りしたいと思います。
      よろしくお願いいたします。

      • hiroshi より:

        想像だけの話ですが、ラインのトークンをもう一つ取得し
        var LINE_NOTIFY_TOKEN2 = “ラインのトークン2”;

        var response = UrlFetchApp.fetch(LINE_NOTIFY_API, {
        “method”: “post”,
        “headers”: {
        “Authorization”: “Bearer ” + LINE_NOTIFY_TOKEN2
        },
        “payload”: {
        “message”: msg
        }
        });
        を追加すればうまくいくのでは?と思います。

        実際に動いているVBAを提供いただければ、もう少し
        クリティカルな回答ができるかと思います。

    8. おみし より:

      ご返信ありがとうございます。

      function内に追加したところ上手く動作いたしました!
      ありがとうございます!

      実際に運用しているVBAに関しては
      Excel上でLINEグループリストを作成し、任意の送信したいLINEグループに対して●チェックをして複数に向けて送信しているようなものになります。

      例えばグループリスト50個あるうち15グループに●チェックしメッセージを送信するみたいなものです。
      提供可能ですが、どのように提供すればよろしいでしょうか?

      • hiroshi より:

        >function内に追加したところ上手く動作いたしました!
        よかったです。
        動作したのであれば、VBAスクリプトをご提供いただかなくて結構です。

    タイトルとURLをコピーしました