1. 개발환경
개발언어 : node.js
호스팅 : Glitch.com
2. 시작하기
Twitch Developers는 개발자들이 쉽게 twitch 관련 API를 쓸 수 있도록 제공해주는 사이트입니다. 많은 API를 제공하지만 챗봇을 만들기 위해서는 Twitch IRC 문서를 열람하여야 할 것 입니다.
Twitch Developers chatbot & IRC 문서
환경 변수 얻기
값 | 설명 |
---|---|
BOT_USERNAME | 챗봇이 채팅 메시지를 보내는 데 사용하는 계정(CLIENT_ID)입니다. 지금 사용하고 있는 트위치 계정이 될 수도 있지만 많은 개발자는 자신의 봇에 대한 두 번째 트위치 계정을 새로 만드는 경우를 선택합니다. |
CHANNEL_NAME | 챗봇이 접속할 트위치 채널의 이름입니다. |
OAUTH_TOKEN | Twitch의 서버로 챗봇을 인증하는 토큰입니다. 챗봇 계정에 로그인 한 상태에서 https://twitchapps.com/tmi/ 로 생성합니다. 토큰은 영숫자 문자열입니다. |
CLIENT_ID 얻기
챗봇으로 사용할 계정으로 접속 후 https://dev.twitch.tv/console/apps 로 접속합니다. [+ 내 응용 프로그램 등록] 버튼을 눌러 신규 응용프로그램을 만듭니다. 범주는 chat bot을 선택하고
OAUTH_TOKEN 얻기
저는 챗봇을 위한 트위치 계정을 새로 만들었습니다. 챗봇으로 사용할 계정으로 로그인 후에 https://twitchapps.com/tmi/ 으로 접속합니다.
Connect버튼을 클릭합니다.
oauth_token을 얻었습니다.
3. 글리치에서 챗봇 실행하기
글리치에 이미 Twitch chatbot 템플릿이 배포되어 있습니다. 글리치에서는 무료로 클라우드 상에서 즉시 앱을 생성, 편집, 호스팅이 가능합니다.
[Remix to Edit]버튼을 누르면 프로젝트를 복사하여 나만의 프로젝트로 편집할 수 있습니다. 기본적으로 유저가 !dice
를 입력하면 챗봇이 You rolled a <1~6>
을 대답하는 소스가 적혀져 있습니다.
위에서 얻은 환경 변수들을 .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로 챗봇을 깨워줄 수 있습니다.
이메일로 인증 후 new Monitor를 추가 후 URL을 입력하면 5분마다 깨워줍니다.