유튜브 챗봇 만들기, 정말 쉬워요! - 구글시트 API 예제

구글시트에서 제공하는 앱스크립트를 활용하여 나만의 API를 만든 후 유튜브 챗봇과 연동하여 자동화하는 방법까지 단계별로 알아봅니다.

# 구글시트

작성자 :
오빠두엑셀
최종 수정일 : 2021. 11. 01. 01:10
URL 복사
메모 남기기 : (18)

구글시트 API를 활용한 유튜브 자동화 챗봇 만들기

챗봇 만들기, 구글 API 활용 목차 바로가기
영상 강의

큰 화면으로 보기

완성된 명령문 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [구글시트] 1강 구글시트 API 유튜브 챗봇 만들기 - 보충파일
    보충파일

.

라이브 강의 전체영상도 함께 확인해보세요!

위캔두 회원이 되시면 매주 오빠두엑셀에서 진행하는 라이브강의 풀영상을 확인하실 수 있습니다.


강의에 사용된 명령문 예제 코드

구글시트 앱스크립트 API 예제 명령문

완성된 코드는 위쪽 보충자료에 정리해드렸습니다. 완성된 코드를 복사/붙여넣기해서 사용하는 방법은 아래 유튜브 챗봇 단계별 만들기를 참고해주세요. 명령문의 각 단계별 동작원리에 대한 자세한 설명은 예제코드에 적어드린 시간대 영상 강의에서 확인하실 수 있습니다.

function doGet(e){
 
  // 통합문서&시트 불러오기 (05:35)
 
  // 시트의 머리글 받아오기
 
  // 머리글에서 ID 제거하기 (10:14)
 
  // URL로 입력한 받은 쿼리문 받아오기 (10:54)
  // https://developers.google.com/apps-script/guides/web
 
  // 현재날짜/시간 출력하기 "06-05 Sat 19:30" 형태로 (14:46)
  // https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
  // https://developers.google.com/google-ads/scripts/docs/features/dates
  var now = new Date();
  var date = Utilities.formatDate(now, 'Asia/Seoul', 'MM-dd EEE HH:mm');
  // 시트에 입력된 데이터를 받아오기 (15:14)
 
  // 쿼리문에 new가 없으면 출석회수 출력 (15:59)
  if (!query['new']) {
 
  } else {
  // 쿼리문에 new가 있으면 새로운 출석을 등록(21:49)
  // 기존 접속한 기록이 있으면 이미 출석했다는 안내 메시지 출력 후 종료
 
    // 기록이 없으면, 새로운 사용자를 등록
 
    // 쿼리로 받아온 값에는 id가 없으므로, 기존 시트에 입력된 ID를 참조하여 최대값을 계산
    const ids = ws.getRange(2,1,ws.getLastRow()-1,1).getValues();
    const newIDNumber = getMaxFromDoubleArray_(ids) + 1;
    // 머리글을 참조한 배열(ID가 없는 배열)의 맨 왼쪽에 ID 값을 추가합니다.
 
    // 시트에 데이터를 추가합니다. (21:49)
 
    // 접속회수에 1을 더한 뒤, 안내메시지 출력 후 종료합니다.
 
  }
}
 
function getMaxFromDoubleArray_(arr){
/* 배열에서 최대 값을 반환합니다.*/
  let maxID = 0;
  arr.forEach(r => {
    if(r[0] > maxID) maxID = r[0];
  });
  return maxID;
}
NightBot 커스텀 호출 구문
Command Message
!출석 $(urlfetch 앱스크립트URL?U=$(querystring $(user))&L=$(time Asia/Seoul "YYYYMMDD")&new=s)
!출석확인 $(urlfetch 앱스크립트URL?U=$(querystring $(user))&L=$(time Asia/Seoul "YYYYMMDD"))

나만의 구글시트 API 만들기 - 정말 쉬워요!

구글 시트에서 제공하는 앱스크립트(Apps Script)를 활용하면 URL주소를 입력하여 시트의 값을 입/출력하는 REST API를 손쉽게 제작할 수 있습니다.

  1. 구글시트 만들기 : 구글로 이동한 뒤 로그인합니다. 이후 우측 상단 설정버튼을 클릭한 뒤, [스프레드 시트]를 클릭하여 구글 시트를 메인페이지로 이동합니다.
    구글시트 이동
    구글 로그인 - 스프레드 시트를 선택하여 구글시트 메인페이지로 이동합니다.
    오빠두Tip : Sorry, unable to open the file at this time. 오류는 여러 개의 구글 아이디가 동시에 로그인 되어있을 경우 발생합니다. 오류가 발생하면 모든 구글 아이디를 로그아웃 한 뒤, 구글 아이디 하나만 로그인하여 실습을 진행합니다.
  2. [새 스프레드시트 시작하기] 에서 [내용 없음]을 선택하여 비어있는 시트를 만든 뒤, 통합문서 이름을 "유튜브 챗봇 만들기", 시트 이름을 "Log"로 변경합니다.

    유튜브 챗봇 만들기 구글시트 api
    통합문서와 시트의 이름을 변경합니다.
  3. A1셀 : ID, B1셀 : U, C1셀 : L 을 입력합니다. A2~C2셀에는 임시 데이터로 아래 그림과 같이 입력합니다

    구글시트 데이터 추가
    시트에 임시데이터를 작성합니다.
  4. API 스크립트 붙여넣기 : [도구] 탭 - [스크립트 편집기]를 클릭하여 스크립트 편집기를 실행합니다.

    구글시트 앱스크립트 편집기
    도구 - 스크립트 편집기를 클릭하여 스크립트편집기를 실행합니다.
  5. 스크립트 편집기가 실행되면, 좌측 프로젝트 목록에서 'Code.gs'를 선택 한 후, 홈페이지에 올려드린 완성파일 전체 명령문을 복사하여 'Code.gs'에 덮어쓰기합니다. 이후 저장버튼을 눌러 스크립트를 저장합니다.

    구글시트 앱 스크립트 저장
    완성 명령문을 붙여넣기 후, 저장합니다.
  6. API 배포하기 : 우측 상단의 [배포] - [새 배포]를 클릭합니다.

    구글시트 api 배포
    배포 - 새 배포를 클릭합니다.
  7. 새 배포 창이 나오면 유형 선택 : 웹 앱, 새 설명 : 유튜브 챗봇 API, 엑세스 권한이 있는 사용자 : 모든 사용자 를 선택 후 [배포] 버튼을 클릭합니다.
    구글시트 api 웹앱 배포
    배포 유형과 설명, 엑세스 권한 사용자를 선택 후 [배포] 버튼을 클릭합니다.
  8. 엑세스 승인 버튼이 나오면 엑세스 승인버튼을 클릭하여 접근 권한을 부여합니다.
    구글시트 api 새배포 엑세스
    권한 승인이 필요할 경우, 절차에 따라 접근 권한을 부여합니다.
    오빠두Tip : 확인되지 않은 앱오류가 나올 경우 [고급] 버튼을 클릭  - [프로젝트로 이동 (안전하지 않음)] 을 선택하여 권한을 승인할 수 있습니다.
  9. 웹앱 URL이 생성되었습니다. URL 주소를 복사합니다.

    유튜브 챗봇 api 등록 완료
    생성된 웹앱 URL을 복사합니다.
  10. API 사용하기 : 이제 인터넷 검색창에 아래와 같이 URL 주소를 입력하면 구글 시트에 출석체크를 등록하거나 출석 현황을 확인할 수 있습니다.
    유튜브 챗봇 테스트
    이제 URL주소를 입력해서 시트에 데이터를 입력하거나 조회할 수 있습니다.
    동작 URL
    출석체크 등록 웹앱URL?U=오빠두&L=20190101&new=y
    출석현황 확인 웹앱URL?U=오빠두&L=20190101

NightBot을 활용한 유튜브 챗봇 만들기

이제 구글시트로 제작한 API를 활용해서 유튜브 챗봇을 만들 수 있습니다. 대표적으로 사용되는 NightBot을 사용하여 유튜브 챗봇을 제작해보겠습니다.

  1. NightBot 회원가입 : NightBot.tv 로 이동한 뒤, [Sign Up] - [Log in with Youtube]버튼을 클릭하여 회원가입합니다.
    나이트봇 회원가입
    나이트봇에 회원가입합니다.
    오빠두Tip : NightBot 회원가입은 실제 유튜브 방송을 진행할 구글 ID로 가입합니다.
  2. 우측 상단 [Join Channel] 버튼을 클릭합니다.
    나이트봇 등록
    로그인 후 우측 상단 [Join Channel] 버튼을 클릭합니다.
  3. NightBot 관리자 등록 : 안내창에 적힌 순서대로, [유튜브 스튜디오] - [환경설정] - [커뮤니티] 로 이동한 뒤, 안내창에 적힌 링크를 복사/붙여넣기 하여 NightBot을 관리자로 등록합니다.

    나이트봇 관리자 등록
    안내창에 적힌 순서대로 나이트봇을 관리자로 등록합니다.
  4. 커스텀 명령문 작성 : 좌측 목록에서 [Command] - [Custom]을 선택합니다. 이후 [Add Command] 버튼을 클릭한 뒤 아래 표와 같이 커스텀 명령문을 추가합니다.
    나이트봇 커스텀 문구 추가
    구글시트로 제작한 API를 커스텀 명령문으로 등록합니다.
    Command Message
    !출석 $(urlfetch 앱스크립트URL?U=$(querystring $(user))&L=$(time Asia/Seoul "YYYYMMDD")&new=s)
    !출석확인 $(urlfetch 앱스크립트URL?U=$(querystring $(user))&L=$(time Asia/Seoul "YYYYMMDD"))
  5. 이제 유튜브 스트리밍을 실행 후 채팅창에 "!출석", "!출석확인"을 입력하면 구글시트에 데이터가 실시간으로 연동되며 챗봇이 동작합니다.
    오빠두Tip : NightBot 유튜브 챗봇은 방송이 '공개' 상태일 경우만 동작합니다. 방송이 '비공개' 또는 '회원전용'일 경우 챗봇을 사용할 수 없습니다.
4.9 9 투표
게시글평점
18 댓글
Inline Feedbacks
모든 댓글 보기
18
0
여러분의 생각을 댓글로 남겨주세요.x