[GAS] 외부에서 URL과 해시 값을 받아 스프레드시트에 저장하기 [Google Sheets에 외부 데이터 추가하기]

2024. 4. 26. 17:48·◎ JavaScript/Google App Script🐑
728x90


- 외부에서 URL과 해시 값을 받아 스프레드시트에 저장하기

웹 애플리케이션을 개발하다보면 외부에서 전달된 데이터를 스프레드시트에 저장해야 할 때가 있다. 오늘은 GAS를 사용하여 외부에서 전달된 URL과 해시 값을 받아와 스프레드시트에 저장하는 방법에 대해 알아본다.

예제의 스프레드 시트 구조

아래 코드는 doPost 함수와 writeToSpreadsheet 함수로 구성되어 있다.

doPost 함수는 외부에서 전달된 URL과 해시 값을 가져와서 스프레드시트에 입력한다. 그리고 writeToSpreadsheet 함수는 받아온 데이터를 실제로 스프레드시트에 입력하는 역할을 한다.
// doPost 함수는 전달된 URL과 해시 값을 스프레드시트에 입력합니다.
function doPost(e) {
  // 전달된 데이터에서 URL과 해시 값을 가져옵니다.
  var url = e.parameter.url;
  var hash = e.parameter.hash;
  
  // URL 또는 해시 값이 없는 경우 에러 메시지를 반환합니다.
  if (!url || !hash) {
    return ContentService.createTextOutput('Please provide both URL and hash parameters.');
  }
  
  // 데이터를 스프레드시트에 입력합니다.
  writeToSpreadsheet(url, hash);
  
  // 성공 메시지를 반환합니다.
  return ContentService.createTextOutput('Data successfully added to the spreadsheet.');
}

// 스프레드시트에 데이터를 입력하는 함수
function writeToSpreadsheet(url, hash) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // 마지막 행에 데이터를 추가합니다.
  var lastRow = sheet.getLastRow();
  sheet.getRange(lastRow + 1, 1).setValue(url);
  sheet.getRange(lastRow + 1, 2).setValue(hash);
}

 

이 코드는 외부에서 POST 요청을 받아와서 URL과 해시 값을 추출하고, 그 값을 스프레드시트에 저장한다.

doPost 함수에서는 전달된 데이터에서 URL과 해시 값을 가져오고, 이를 writeToSpreadsheet 함수로 전달하여 스프레드시트에 저장한다.

JavaScript에서 불러오는 방법은 아래와 같다.
// 데이터 저장하기
async function saveData(url, hash) {
    try {
        const response = await fetch(`https://script.google.com/macros/s/${GOOGLE_APPS_SCRIPT_ID}/exec`, {
            method: 'POST',
            body: new URLSearchParams({
                'url': url,
                'hash': hash
            })
        });
        if (!response.ok) {
            throw new Error('네트워크 응답이 올바르지 않습니다.');
        }
        const data = await response.text();
    } catch (error) {
        console.error(error);
    }
}

728x90
'◎ JavaScript/Google App Script🐑' 카테고리의 다른 글
  • [GAS] 구글 앱 스크립트 doGet과 doPost 사용 방법 [구글 앱 스크립트로 외부 요청 처리하기]
  • [GAS] 외부에서 구글 스프레드 시트에서 데이터 가져오기 [Google Sheets에서 URL 해시 매핑 데이터 가져오기]
  • [GAS] 자동으로 구글 캘린더에 일정 추가하기 [구글 스프레드 시트와 캘린더 연동하기]
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (937)
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (32)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (40)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (4)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (89)
        • 백준(BOJ)👨🏻‍💻 (70)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
        • 알고리즘(Algorithm)🎡 (10)
      • ◈ Study (102)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (6)
      • ◈ 공부모임 (39)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (11)
      • ◈ 자격증 공부 (37)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (113)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (44)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 태그

    프로그래밍
    코딩
    html
    spring
    jsp
    Database
    Oracle
    javascript
    Java
    코딩 테스트
    백준
    백준 티어
    SQL
    자바스크립트
    꿀팁
    일상
    Project
    Error Note
    CSS
    BOJ
  • 250x250
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[GAS] 외부에서 URL과 해시 값을 받아 스프레드시트에 저장하기 [Google Sheets에 외부 데이터 추가하기]
상단으로

티스토리툴바