AI/생성형AI

[GPT업무자동화](8)GPTs로 실시간뉴스 보기(Google Apps Script)

CodeMasterSong 2025. 5. 8. 21:16
반응형

📡 GPTs 과 GNews API 연동으로 실시간 뉴스 

이전 글에서 실시간 뉴스를 서비스하기위해 NewsAPI와 Cloudflare를 이용하였습니다. 같은 주제이지만 이 글에서는 GNews API과 Google Apps Script(GAS)를 활용하여 활용여 실시간 뉴스 요약 시스템을 지원하는 GPTs를 만들어 보도록 하겠습니다. GNews API는 NewsAPI와는 다르게 한글 뉴스도 지원하는 특징을 가졌습니다. 

 


✅ 구조 개요

사용자 (GPT 프롬프트)
   ↓
GPTs → GAS Webhook → GNews API 호출
                            ↓
                   뉴스 JSON 응답 반환

🔧 구성 요소 요약

구성 요소 설명
GPTs 사용자에게 카테고리를 입력받아 GAS로 전달
GAS Web App category를 받아 GNews API 호출 → 응답 구조화 후 반환
GNews API 최신 뉴스 5개 반환 (JSON), 한글도 지원

1. 🔑 GNews API Key 준비

  1. https://gnews.io/register 접속
  2. 이메일로 가입 후 대시보드에서 API Key 확인 및 계정 활성화
  3. 무료 요금제: 일일 최대 100회 요청 가능
  4. API 예시:
    https://gnews.io/api/v4/top-headlines?category=technology&lang=ko&token=YOUR_API_KEY
 

Sign up - GNews API

Sign up to get a free API key.

gnews.io

s1
s3


2. 🛠️ Google Apps Script 작성 및 배포

2-1. 스크립트 코드 작성 (GNews 전용)

function doPost(e) {
  try {
    Logger.log('Received request: ' + JSON.stringify(e));

    if (!e || !e.postData || !e.postData.contents) {
      throw new Error('요청 데이터가 없습니다.');
    }

    const categoryMap = {
      "기술": "technology",
      "비즈니스": "business",
      "건강": "health",
      "과학": "science",
      "스포츠": "sports",
      "엔터테인먼트": "entertainment",
      "세계": "world",
      "국내": "nation"
    };

    const apiKey = "bXXXXXXfd8";  // 하드코딩
    const input = JSON.parse(e.postData.contents);
    const inputCategory = input.category || '기술';
    const category = categoryMap[inputCategory];

    if (!category) {
      return ContentService.createTextOutput(JSON.stringify({
        articles: [],
        error: '해당 분야의 뉴스가 없습니다.'
      })).setMimeType(ContentService.MimeType.JSON);
    }

    const url = `https://gnews.io/api/v4/top-headlines?category=${category}&lang=ko&max=5&token=${apiKey}`;
    Logger.log('Request URL: ' + url);

    const response = UrlFetchApp.fetch(url);
    const json = JSON.parse(response.getContentText());

    const articles = (json.articles || []).map((a) => ({
      title: a.title,
      description: a.description,
      source: a.source.name
    }));

    return ContentService.createTextOutput(JSON.stringify({ articles }))
      .setMimeType(ContentService.MimeType.JSON);

  } catch (err) {
    Logger.log('Error: ' + err.message);
    return ContentService.createTextOutput(JSON.stringify({
      articles: [],
      error: err.message
    })).setMimeType(ContentService.MimeType.JSON);
  }
}

2-2. API 키 등록 (보안용, 선택)

  • 스크립트 편집기 > 파일 → 프로젝트 속성 → 스크립트 속성
  • 이름: GNEWS_API_KEY, 값: GNews API 키 입력

2-3. Web App으로 배포

  1. 상단 메뉴 → 배포 → 새 배포
  2. 유형: 웹 앱 선택
  3. 실행 사용자: 나 자신 / 접근 권한: 익명 가능
  4. 배포 후 Webhook URL 복사

3. 🔗 GPTs Action 연결 스키마 예시

{
  "openapi": "3.1.0",
  "info": {
    "title": "GNews 뉴스 요약 API",
    "version": "1.0.0",
    "description": "GPTs에서 뉴스 카테고리를 전달받아 Google Apps Script를 통해 GNews API로 최신 뉴스를 요약하여 반환합니다."
  },
  "servers": [
    {
      "url": "https://script.google.com/macros/s/USER__URL/exec"
    }
  ],
  "paths": {
    "/": {
      "post": {
        "operationId": "fetchNewsGNews",
        "summary": "카테고리별 GNews 최신 뉴스 조회",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "한글 뉴스 카테고리 (예: 기술, 건강, 스포츠, 비즈니스 등)"
                  }
                },
                "required": ["category"]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "요청된 카테고리에 대한 뉴스 요약 결과 (제목, 설명, 출처 포함)"
          }
        }
      }
    }
  }
}

4. 🤖 GPT 프롬프트 예시 (System Message)

당신은 실시간 뉴스 요약 도우미입니다.
사용자가 한글로 입력한 분야(예: 기술, 스포츠 등)를 GNews API로 조회하여,
최신 뉴스 5건의 제목과 출처를 표 형태로 한글로 요약해 보여주세요.

  • GNews API는 한글 뉴스도 지원하며, 무료 플랜이 있어 GPT 연동 실습에 매우 적합함
  • GAS를 프록시로 사용하면 GPTs의 외부 API 호출 제한을 회피 가능
  • 시스템 구축 후 GPTs에서 “기술”, “스포츠” 등 자연어로 입력만 해도 뉴스 요약을 받아볼 수 있음

같은 분야에서 여러가지의 API가 제공되고 있습니다. 
News에서 NewsAPI와 GNews 기반으로도 뉴스 요약 시스템을 간단히 구축해 본 경험들을 바탕으로 앱을 구축하는 전반적인 흐름을 이해하고 다양한 아이디어로 앱을 개발할 수 있도록 하세요. 

반응형