GAS (Google Apps Script)를 사용하여 Google 캘린더 정보를 연결하는 LINEbot을 만드는 방법

Google 캘린더에 등록되어 있는 다음 날의 예정을 매일 LINE으로 통지해 주는 bot를 작성해 보았습니다.

이번에 사용하는 것


  • LINE developers 계정
  • Google 계정
  • Google 캘린더
  • GAS


  • LINE developers



    LINE developers 계정은 여기 에서 평소 사용하고 있는 LINE 계정으로 로그인할 수 있습니다.
    로그인할 수 있으면 공급자를 만듭니다.
    그런 다음 새 채널을 만듭니다. 채널 유형은 "Messaging API"를 선택하십시오.
    또한 채널의 Messaging API 설정에서 채널 액세스 토큰을 발급합니다.
    이번 bot에서는, 이하의 2점을 사용합니다.
  • 채널 액세스 토큰
  • 사용자 ID (채널 기본 설정에 설명)

  • Google 캘린더



    통지할 캘린더의 캘린더 ID를 가져옵니다.
    캘린더 ID는 캘린더 설정에 설명되어 있습니다.


    ※물론 개인의 캘린더에서도 가능합니다.

    GAS



    마지막으로 GAS로 캘린더의 정보를 취득해 와서 LINE에 메시지를 보내는 처리를 써갑니다.
    여기 에서 GAS의 새 프로젝트를 만들고 편집기 부분에 다음 코드를 씁니다.
    
    var access_token = '<チャネルアクセストークン>';
    var userID = '<ユーザID>';
    var url = 'https://api.line.me/v2/bot/message/push';
    
    function get_calendar(event_push){
      var today = new Date();
      var tomorrow = new Date();
      tomorrow.setDate(tomorrow.getDate() +1);
      var calendar_ID = '<カレンダーID>';
      var calendar_get = CalendarApp.getCalendarById(calendar_ID);
      var events = calendar_get1.getEventsForDay(tomorrow);
      var event_push = [];
      for(var i in events){
        var event = events[i].getTitle();
        event_push.push(event);
      }
      return event_push;
    }
    
    function push_test() {
      var event_push = get_calendar();
      var event_message = '';
      event_message = '明日の予定は、';
      if(!event_push.length){  //←空白判定
        event_message += '特にありません。';
      }else{
        for(var k =0; k < event_push.length; k++){
          event_message += event_push[k];
          if(k+1 < event_push.length){
            event_message += '';
          }
        }
      event_message += 'です。';
      }
    
      var headers = {
        'Content-Type':'application/json; charset = UTF-8',
        'Authorization':'Bearer ' + access_token
      } 
      var options = {
        'headers':headers,
        'method':'post',
        'payload':JSON.stringify({
          'to':userID,
          'messages':[{
            'type':'text',
            'text':event_message
          }]
        })
      };
    
      UrlFetchApp.fetch(url, options);
    }
    

    bot 스크립트가 생성되면 게시 > 웹 애플리케이션으로 배포에서 웹 앱 URL을 배포하고 게시합니다.



    ↑에서 발행한 web app URL을 LINE Developers의 「Messaging API 설정 > Webhook 설정」 부분으로 설정하고, 「webhook의 이용」을 ON으로 합니다.



    마지막으로 Messaging API 설정의 QR 코드를 사용하여 LINE 앱으로 친구 추가하면 준비 완료입니다!

    GAS의 'push_test'함수를 사용해 보면 이런 방식으로 내일 일정이 LINE으로 보내지면 성공입니다!


    "push_test"의 함수를 원하는 시간에 트리거로 설정하면 매일 정해진 시간대에 내일의 예정을 반영구적으로 자동으로 알려줍니다.

    마지막으로



    이번은 캘린더에 등록되어 있는 예정의 타이틀만을 취하고 있습니다만, 예정의 시간이나 내용을 취해 오거나, 스프레드시트의 정보를 제휴할 수도 있고,
    보낸 메시지에 대답해 주는 본격적인 bot를 작성하는 것도 가능하기 때문에 여러가지 사용법(놀이 방법?)을 할 수 있을 것 같습니다.
    물론 무료. 좋아요. .

    참고 기사


  • Google Apps Script로 LINE BOT을 만들면 30분 안에 움직일 수 있는 건
  • 좋은 웹페이지 즐겨찾기