AD

자유 나만의 트위치 챗봇 만들기

흐히히흐헤헤
2019-07-21 21:51:12 7643 9 8


1. 개발환경

개발언어 : node.js

호스팅 : Glitch.com


2. 시작하기

Twitch Developers는 개발자들이 쉽게 twitch 관련 API를 쓸 수 있도록 제공해주는 사이트입니다. 많은 API를 제공하지만 챗봇을 만들기 위해서는 Twitch IRC 문서를 열람하여야 할 것 입니다.

Twitch Developers chatbot & IRC 문서

9a152b40bf044bc7566bc73a73e6d6f4.png

환경 변수 얻기

설명
BOT_USERNAME챗봇이 채팅 메시지를 보내는 데 사용하는 계정(CLIENT_ID)입니다. 지금 사용하고 있는 트위치 계정이 될 수도 있지만 많은 개발자는 자신의 봇에 대한 두 번째 트위치 계정을 새로 만드는 경우를 선택합니다.
CHANNEL_NAME챗봇이 접속할 트위치 채널의 이름입니다.
OAUTH_TOKENTwitch의 서버로 챗봇을 인증하는 토큰입니다. 챗봇 계정에 로그인 한 상태에서 https://twitchapps.com/tmi/ 로 생성합니다. 토큰은 영숫자 문자열입니다.


CLIENT_ID 얻기

챗봇으로 사용할 계정으로 접속 후 https://dev.twitch.tv/console/apps 로 접속합니다. [+ 내 응용 프로그램 등록] 버튼을 눌러 신규 응용프로그램을 만듭니다. 범주는 chat bot을 선택하고


OAUTH_TOKEN 얻기

저는 챗봇을 위한 트위치 계정을 새로 만들었습니다. 챗봇으로 사용할 계정으로 로그인 후에 https://twitchapps.com/tmi/ 으로 접속합니다.

f4c5c3ca82a884963d2e805cc68d8aea.png

Connect버튼을 클릭합니다.

51d684d3e3c0be1e92b973e3196865b1.png

oauth_token을 얻었습니다.

3. 글리치에서 챗봇 실행하기

글리치에 이미 Twitch chatbot 템플릿이 배포되어 있습니다. 글리치에서는 무료로 클라우드 상에서 즉시 앱을 생성, 편집, 호스팅이 가능합니다.

[Remix to Edit]버튼을 누르면 프로젝트를 복사하여 나만의 프로젝트로 편집할 수 있습니다. 기본적으로 유저가 !dice 를 입력하면 챗봇이 You rolled a <1~6>을 대답하는 소스가 적혀져 있습니다.

f6810f7ec227b1059be33f07f8b48c23.png

위에서 얻은 환경 변수들을 .env파일에 입력합니다.

4. 커스터마이징하기

Line 24에서 39를 다음과 같이 편집해보겠습니다.

// 모든 메세지를 입력받을 때마다 function onMessageHandler (target, context, msg, self) {   if (self) { return; } // 봇에 의한 메세지는 무시한다. // 채팅 메세지의 빈 공간(스페이스)을 trim 한다. const commandName = msg.trim(); // 명령어를 받고 처리합시다. if (/안녕|안뇽/.test(commandName)) {     const num = rollDice();     client.say(target, `${context['display-name']}님 안녕하세요`);   }  }

5. 글리치의 기술적인 제한

글리치는 무료로 node.js를 호스팅할 수 있는 사이트지만 그에 따라 기술적인 제한이 있습니다.

  • 프로젝트는 사용하지 않으면 5분 후에 자고, 12시간 이상 실행되는 것은 중지된다. 그들은 project-name.glitch.me 주소로 또 다른 HTTP 요청을 받으면 다시 일어난다.

따라서 5분마다 깨워줄 필요가 있습니다.

Uptimerobot라는 사이트는 5분 마다 URL로 챗봇을 깨워줄 수 있습니다.

644219416a782e53e5321caa1dcc38d9.png

이메일로 인증 후 new Monitor를 추가 후 URL을 입력하면 5분마다 깨워줍니다.

후원댓글 8
댓글 8개  
이전 댓글 더 보기
TWIP 잔액: 확인중
자유강의Q&A프로젝트 소개
3
자유
알고리즘 공부 어떻게 하나요 [8]
비알콜성푸아그라
11-12
2
Q&A
제가 잘 몰라서 질문드려요 [3]
지나가는트수
11-04
2
자유
정보보호병 [4]
smithK
10-28
5
Q&A
c언어 질문... [24]
_마코_
10-28
1
10-09
0
09-12
0
자유
군대에서 컴터공부 추천좀요 [5]
앙기모띠주는나무띠
09-03
0
자유
Golang 에서 cURL를 사용하고싶을때. [2]
곰이보고육수흘린반개
08-27
10
프로젝트 소개
코딩용 폰트를 만들었습니다 [1]
도르발
07-30
»
자유
나만의 트위치 챗봇 만들기 [8]
흐히히흐헤헤
07-21
0
Q&A
API 사용 질문 [2]
박설명
06-17
0
자유
이게 맞나요?
유일유이
06-09
1
06-08
1
Q&A
카톡 리버싱 [7]
worstwing
06-05
1
06-03
인기글 글 쓰기