반응형
📧 구글시트 + Naver API로 내가 원하는 뉴스를 매일 아침 이메일로 받아보는 자동화 시스템 만들기
매일 아침, 내가 관심 있는 키워드의 뉴스를 자동으로 정리해서 이메일로 받아볼 수 있다면 얼마나 편리할까요?
이번 글에서는 구글시트, Naver 뉴스 검색 API, 그리고 Google Apps Script를 활용하여
"내가 원하는 뉴스만 자동 수집하여 이메일로 보내는 자동화 시스템" 을 만드는 방법을 소개합니다.
🔧 준비물
- ✅ Google 계정
- ✅ Naver 개발자 센터 계정 (API 키 발급용)
- ✅ Google Sheets (구글시트)
- ✅ 약간의 코드 작성 (복붙 가능!)
1️⃣ Naver API 등록하기
- 네이버 개발자 센터 접속
- 로그인 후, Application 등록 클릭
- 아래와 같이 입력 후 등록합니다.
- 애플리케이션 이름: MyNewsBot
- 사용 API: 검색 > 뉴스
- 환경: 웹 서버 선택
- 등록이 완료되면 Client ID 와 Client Secret을 복사해둡니다.
2️⃣ 구글시트에 키워드 입력하기
- https://sheets.new 에서 새로운 시트를 만듭니다.
- 첫 번째 시트에 아래처럼 관심 키워드를 입력하세요:
A열 (키워드)
-------------
인공지능
삼성전자
자율주행
- 시트 이름은 KeywordList로 변경해 주세요.
3️⃣ Apps Script 코드 작성
- 상단 메뉴에서 확장 프로그램 > Apps Script 클릭
- 아래 코드를 복사해서 붙여넣고 저장하세요.
⚠️ 아래 코드에서 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}
- `; newsList.forEach(news => { message += `
- ${news.title.replace(/<[^>]*>?/g, '')} `; }); message += '
';
});
MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: '🗞 오늘의 뉴스 모음',
htmlBody: message
});
}
4️⃣ 트리거 설정 (자동 실행)
- Apps Script 상단 메뉴에서 ⏰ 트리거(시계 아이콘) 클릭
- 새 트리거 추가:
- 실행 함수: 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 |
---|