본문 바로가기

문서작업/IT tips

구글시트 + Naver API로 내가 원하는 뉴스를 매일 아침 이메일로 받아보는 자동화 시스템 만들기

반응형

📧 구글시트 + Naver API로 내가 원하는 뉴스를 매일 아침 이메일로 받아보는 자동화 시스템 만들기

매일 아침, 내가 관심 있는 키워드의 뉴스를 자동으로 정리해서 이메일로 받아볼 수 있다면 얼마나 편리할까요?

이번 글에서는 구글시트, Naver 뉴스 검색 API, 그리고 Google Apps Script를 활용하여
"내가 원하는 뉴스만 자동 수집하여 이메일로 보내는 자동화 시스템" 을 만드는 방법을 소개합니다.


🔧 준비물

  • ✅ Google 계정
  • ✅ Naver 개발자 센터 계정 (API 키 발급용)
  • ✅ Google Sheets (구글시트)
  • ✅ 약간의 코드 작성 (복붙 가능!)

1️⃣ Naver API 등록하기

  1. 네이버 개발자 센터 접속
  2. 로그인 후, Application 등록 클릭
  3. 아래와 같이 입력 후 등록합니다.
    • 애플리케이션 이름: MyNewsBot
    • 사용 API: 검색 > 뉴스
    • 환경: 웹 서버 선택
  4. 등록이 완료되면 Client IDClient Secret을 복사해둡니다.

2️⃣ 구글시트에 키워드 입력하기

  1. https://sheets.new 에서 새로운 시트를 만듭니다.
  2. 첫 번째 시트에 아래처럼 관심 키워드를 입력하세요:
A열 (키워드)
-------------
인공지능
삼성전자
자율주행
  1. 시트 이름은 KeywordList로 변경해 주세요.

3️⃣ Apps Script 코드 작성

  1. 상단 메뉴에서 확장 프로그램 > Apps Script 클릭
  2. 아래 코드를 복사해서 붙여넣고 저장하세요.

⚠️ 아래 코드에서 NAVER_CLIENT_ID 와 NAVER_CLIENT_SECRET에는 위에서 복사한 값을 넣어주세요.

const NAVER_CLIENT_ID = '여기에_클라이언트_ID';
const NAVER_CLIENT_SECRET = '여기에_클라이언트_시크릿';

function fetchNews(keyword) {
  const url = `https://openapi.naver.com/v1/search/news.json?query=${encodeURIComponent(keyword)}&display=3&sort=date`;
  const options = {
    headers: {
      'X-Naver-Client-Id': NAVER_CLIENT_ID,
      'X-Naver-Client-Secret': NAVER_CLIENT_SECRET
    }
  };
  const response = UrlFetchApp.fetch(url, options);
  const data = JSON.parse(response.getContentText());
  return data.items;
}

function sendNewsEmail() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('KeywordList');
  const keywords = sheet.getRange(2, 1, sheet.getLastRow() - 1).getValues().flat();
  let message = "

오늘의 뉴스 요약

";

  keywords.forEach(keyword => {
    const newsList = fetchNews(keyword);
    message += `

📌 ${keyword}

';
  });

  MailApp.sendEmail({
    to: Session.getActiveUser().getEmail(),
    subject: '🗞 오늘의 뉴스 모음',
    htmlBody: message
  });
}

4️⃣ 트리거 설정 (자동 실행)

  1. Apps Script 상단 메뉴에서 ⏰ 트리거(시계 아이콘) 클릭
  2. 새 트리거 추가:
    • 실행 함수: sendNewsEmail
    • 이벤트 소스: 시간 기반
    • 주기: 매일 오전 8시 등 원하는 시간 설정

✅ 결과 예시 이메일

메일 제목:

🗞 오늘의 뉴스 모음

메일 내용 (HTML 형식):

 


💡 추가 팁

  • 뉴스 개수를 늘리고 싶다면 display=3 → display=5 등으로 변경하세요.
  • 여러 사용자에게 보내고 싶다면 MailApp.sendEmail의 to 값을 aaa@example.com, bbb@example.com처럼 설정할 수 있어요.

 

'문서작업 > IT tips' 카테고리의 다른 글

[IT tip] 구글 바드? 구글 AI  (0) 2023.05.13