LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Thursday, November 2, 2017

LINE BOTでメッセージを送る(push message)決まった時間に自動的に


push messageとGoogle Apps Scriptのトリガーを利用して
指定した時間にメッセージを送る仕組みを作ってみましょう

以下3つの記事の組み合わせでできます

コード.gs
var CHANNEL_ACCESS_TOKEN = "TOKEN"; 
var USER_ID = "ID";

function push_message() {
  var postData = {
    "to": USER_ID,
    "messages": [{
      "type": "text",
      "text": "hello",
    }]
  };

  var url = "https://api.line.me/v2/bot/message/push";
  var headers = {
    "Content-Type": "application/json",
    'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
  };

  var options = {
    "method": "post",
    "headers": headers,
    "payload": JSON.stringify(postData)
  };
  var response = UrlFetchApp.fetch(url, options);
}

意訳.gs
アクセストークンを設定する
ユーザIDを設定する

この処理は以下を実行する
postDataの
toにUSER_IDを設定し
messagesの
typeを設定して
textを設定する



LINEのpushAPIのurlを設定する
headersの
Content-Typeを設定して
Authorizationを設定する


optionsの
methodをpostに設定して
headersを設定して
payloadにはpostDataをJSONに変換したものを設定する

optionをつけてLINEのpush message APIをたたく




トリガーでメッセージを送信したい時間を設定する

編集>現在のプロジェクトのトリガーを選択


トリガーを追加します


実行するのは「push_message」
イベントは「時間主導型」に設定
直ぐに結果がわかるようにここでは「分タイマー」を設定
「1分ごと」に設定
保存をクリック


記事を書いている間に
1分ごとにhelloと送られてきました
(MacのLINEのキャプチャです)


この例では1分毎にメッセージを送るようにしているので
送られてくる確認が終わったらトリガーを削除しておきましょう



〜分単位以外にも

  • 特定の日時
  • 〜時間ごと
  • 〜日ごと
  • 〜週ごと
  • 〜月ごと

などトリガーで設定できます



Latest post

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...