Google Apps Script에서 Push 메시지의 LINE Bot 만들기

여기 의 기사의 속편입니다.

푸시 메시지란?



기본적으로 Bot은 보낸 메시지에 반응하지만 Push 메시지는 Bot에서 메시지를 보낼 수 있습니다.
회사의 계정 등을 친구 등록하고 있으면, 보트메시지가 온다고 생각합니다만, 그것이 푸시메시지가 됩니다.

이번에는 GAS를 사용하여 매일 아침 정해진 시간에 메시지를 보내는 Bot을 만들려고 합니다.

준비



액세스 토큰을 얻거나 GAS 편집기를 여는 방법은 마지막 기사을 참조하십시오. (이 기사를 쓰는 동안 사이트 디자인이 바뀌었지만 별로 신경 쓰지 않습니다 ...)

플랜에 대해서



Push 메시지를 보내려면 우선 Developer Trial 플랜을 사용하면 괜찮습니다.

사용자 ID 정보



푸시 메시지를 보내려면 보내는 사람의 사용자 ID가 필요합니다(그룹으로 보내려면 groupID 필요). Bot을 팔로우하고 있는 모든 사용자에게 보내고 싶은 경우는 각각의 사용자 ID를 Bot의 팔로우 이벤트 등을 사용해 취득해, 그것을 DB에 보존할 필요가 있어 조금 귀찮습니다.
그래서, 이번에는 우선 자신에게만 Push 메시지를 보낼 수 있으면 좋기 때문에, 자신의 계정의 사용자 ID를 취득합니다.
사용자 ID는 채널 기본 설정 하단의 'Your user ID'에 있습니다.


여기를 복사해 봅시다.

개발



API 토큰과 userID를 취득한 것으로, GAS상에서 개발해 나갈 것입니다.
코드는 이런 느낌입니다.
var CHANNEL_ACCESS_TOKEN = 'YOUR_CHANNEL_ACCESS_TOKEN'; 
var USER_ID = 'YOUR_USER_ID';

function pushMessage() {
    //deleteTrigger();
  var postData = {
    "to": USER_ID,
    "messages": [{
      "type": "text",
      "text": "おはよう",
    }]
  };

  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);
}

토큰과 사용자 ID를 입력한 후 저장하고
pushMessage 함수를 선택하여 실행해 봅시다. (그 전에 Bot 계정에 친구를 등록하십시오)


이와 같이 미리 메시지를 넣지 않아도 Bot에서 메시지가 오면 성공입니다.


해설



하는 일은 마지막 reply 메시지와 거의 비슷하며, reply 메시지는 사용자가 보낸 메시지에 해당합니다.
https://api.line.me/v2/bot/message/reply

이쪽의 엔드 포인트에 Post를 보내는 것으로 회신을 할 수 있었습니다.

안녕하세요 푸시 메시지에서 사용자의 메시지가 오지 않아도
https://api.line.me/v2/bot/message/push

이 엔드포인트에 직접 Post를 보내 메시지를 보내고 있습니다.
사용자 ID가 필요한 이유는 보내는 사람을 제한하기 때문입니다.

후기



그러고 보니 최근 'LINE BOOT AWARDS'가 발표됐네요.
GAS로 뭔가 Bot을 만들어 응모하는 것도 즐거울 것 같네요!

좋은 웹페이지 즐겨찾기