안녕하세요 케이입니다.

앞에서는 제가 자주 확인하는 뉴스 키워드를 텔레그램에 저장하고 /mynews라는 명령어를 입력하면 한꺼번에 뉴스를 받아볼 수 있도록 만들어봤습니다.

여기까지 만들고 나니까 처음 시작했을 때와 비교하면 상당히 편해졌습니다.

그런데 한 가지는 여전히 자동이 아니었습니다.

제가 직접 /mynews를 입력해야 뉴스가 왔습니다.

생각해보니 제가 만들고 싶었던 건 뉴스 검색기가 아니라 뉴스 자동수집 봇이었습니다.

매일 아침 비슷한 시간에 확인하는 뉴스라면 제가 직접 명령어를 입력할 필요도 없을 것 같았습니다.

그래서 이번에는 정해진 시간에 Google Apps Script가 알아서 실행되도록 만들어봤습니다.

Google Apps Script에 자동 실행 기능이 있었습니다

처음에는 컴퓨터를 하루 종일 켜놔야 자동으로 실행되는 줄 알았습니다.

그런데 Google Apps Script에는 트리거라는 기능이 있었습니다.

처음 보는 단어라 조금 어려워 보였는데 제가 이해한 방식은 간단했습니다.

정해놓은 조건이 되면 특정 함수를 자동으로 실행해주는 기능

이었습니다.

예를 들어 매일 오전에 실행하거나, 1시간마다 실행하거나, 매주 특정 요일에 실행하는 식입니다.

제가 원했던 건 매일 아침 한 번 실행되는 것이었습니다.

자동으로 실행할 함수를 따로 만들었습니다

기존에는 /mynews를 입력하면 저장된 검색어를 불러와 뉴스를 검색했습니다.

그런데 자동 실행에서는 제가 텔레그램으로 명령을 보낼 수 없습니다.

그래서 자동 실행용 함수를 따로 하나 만들어봤습니다.

function sendDailyNews() {
  var chatId = "내 Chat ID";

  var properties =
    PropertiesService.getScriptProperties();

  var saved =
    properties.getProperty("keywords_" + chatId);

  if (!saved) {
    return;
  }

  var keywordList = saved.split(",");

  for (var i = 0; i < keywordList.length; i++) {
    searchNews(keywordList[i], chatId);
  }
}

처음에는 또 코드가 길어 보였습니다.

그런데 자세히 보면 앞에서 /mynews를 만들 때 사용했던 코드와 거의 같았습니다.

다른 점은 텔레그램에서 명령을 기다리지 않고 sendDailyNews()라는 함수를 실행하면 바로 뉴스 검색이 시작된다는 것이었습니다.

먼저 직접 실행해서 확인했습니다

자동 실행부터 설정하지 않고 우선 Apps Script에서 sendDailyNews 함수를 직접 실행해봤습니다.

실행 버튼을 누른 뒤 텔레그램을 확인했습니다.

제가 저장해둔 검색어의 뉴스가 정상적으로 도착했습니다.

저는 이런 식으로 한 단계씩 확인하는 게 편했습니다.

자동 실행을 설정해놓고 안 되면 뉴스 검색이 문제인지 트리거가 문제인지 구분하기 어렵기 때문입니다.

그래서 항상 수동 실행부터 해보고 정상 작동하면 다음 단계로 넘어갔습니다.

트리거 메뉴를 찾아봤습니다

Google Apps Script 화면 왼쪽을 보면 시계처럼 생긴 트리거 메뉴가 있습니다.

여기에서 새 트리거를 추가할 수 있었습니다.

실행할 함수는 제가 만든 sendDailyNews를 선택했습니다.

그리고 이벤트 소스를 시간 기반으로 선택했습니다.

그다음 매일 실행되는 형태로 설정했습니다.

처음에는 제가 정확히 오전 8시를 선택하면 8시 정각에 오는 줄 알았습니다.

그런데 시간 기반 트리거는 설정 방식에 따라 어느 정도 시간 범위 안에서 실행될 수 있었습니다.

저처럼 정확한 분 단위가 꼭 필요하지 않고 아침에 뉴스만 받아보면 되는 용도라면 크게 문제는 없었습니다.

실제로 자동 뉴스가 도착했습니다

설정을 해놓고 다음 날 제가 아무것도 하지 않았는데 텔레그램에 뉴스가 들어왔습니다.

제가 /news도 입력하지 않았고 /mynews도 누르지 않았는데 저장해둔 관심 키워드 뉴스가 알아서 들어왔습니다.

여기서부터 비로소 제가 처음 생각했던 뉴스 자동수집 봇에 가까워진 느낌이었습니다.

자동으로 받으니 뉴스 양도 다시 조절했습니다

제가 직접 /mynews를 누를 때는 준비하고 보는 거라 괜찮았는데 아침부터 뉴스가 10개, 20개씩 쌓이면 조금 부담스러웠습니다.

그래서 자동 뉴스에서는 검색어 하나당 2~3개 정도만 가져오도록 줄였습니다.

제가 직접 검색할 때는 5개, 자동으로 받을 때는 3개 정도로 나누니까 훨씬 적당했습니다.

직접 해보고 느낀 점

처음에는 자동화니까 가능한 한 많은 정보를 가져오면 좋겠다고 생각했습니다.

그런데 매일 자동으로 오는 정보는 너무 많으면 금방 안 보게 됐습니다.

저한테는 매일 꾸준히 확인할 수 있을 정도의 양이 더 중요했습니다.

그래서 현재는 꼭 필요한 키워드만 저장하고 각 키워드별 뉴스도 몇 개 정도만 받는 방향으로 사용하고 있습니다.

그런데 자동으로 실행되도록 만들어놓으니 새로운 걱정도 생겼습니다.

제가 보고 있지 않을 때 오류가 발생하면 어떻게 알 수 있을까 하는 부분이었습니다.

다음에는 텔레그램 뉴스봇이 갑자기 멈췄을 때 제가 어떤 순서로 확인했는지 정리해보겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

글쓴이

bluekei9@keinote.com

관련 게시물

“Google Apps Script” 실행 기록을 보고 오류 원인을 처음 찾아봤습니다

안녕하세요 케이입니다. 텔레그램 뉴스봇을 만들다 보면 잘될 때보다 안 될 때가 더 공부가 되는 것 같습니다. 저도 처음에는 오류가 나면 코드 전체를...

모두 읽어보기

Google Apps Script로 뉴스 자동수집 봇 만드는 방법

안녕하세요 케이입니다. 지난 글에서는 네이버 뉴스 검색 API와 텔레그램 봇을 어떤 구조로 연결하는지 알아봤습니다. 이번 글에서는 그 중간에서 중요한 역할을 하는 Google...

모두 읽어보기

Google Apps Script로 뉴스 자동수집 봇 만드는 방법

안녕하세요 케이입니다. 지난 글에서는 네이버 뉴스 검색 API와 텔레그램 봇을 어떤 구조로 연결하는지 알아봤습니다. 이번 글에서는 그 중간에서 중요한 역할을 하는 Google...

모두 읽어보기