LANG SELRCT

コードを書く場所についてはこちら

2017年11月2日木曜日

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分毎にメッセージを送るようにしているので
送られてくる確認が終わったらトリガーを削除しておきましょう



〜分単位以外にも

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

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