Post

[Discord Bot] 봇 로그인 #2

1. 디스코드 봇 생성

디스코드 봇을 로그인하기 위해선 우선 아래 링크로 들어가서 디스코드 봇을 만들어야 한다.

생성

New Application버튼을 눌러 봇을 만들고 들어오면 이러한 화면이 뜰 것이다. 여기서 우리가 필요한 것은 로그인할 때 필요한 토큰이다.

image

Bot으로 온다면 TOKEN이라는 항목이 있다. TOKEN은 로그인을 할 때 인증하는 도구로 외부에 절대 노출되면 안되는 정보이다.

image

따라서 Reset Token버튼을 눌러 생성된 토큰을 복사해서 프로젝트 /.env파일에 아래와 같이 저장해야 한다.

1
TOKEN=복사한토큰

image


2. 디스코드 봇 로그인

토큰을 /.env파일에 저장 했다면, 이제 로그인하는 코드를 작성하면 된다. /src/main.ts를 생성하고 로그인하는 코드를 작성한다.

1
2
3
4
5
6
import { Client } from "discord.js";
import { config } from "dotenv";

config();

const client = new Client({ intents: ["Guilds"] });

여기서

1
config();

이 코드는 /.env파일에 적어둔 환경변수를 프로그램에서 사용할 수 있도록 해주는 함수이다.

이후에 나온 코드는 Guilds의 권한을 가진 클라이언트를 생성하는 것이다. 이제 client를 이용해서 로그인을 해주면 로그인은 끝이다.

1
client.login(process.env.TOKEN);

.env에 저장했던 토큰 값은 config함수로 인해 process.env 안에 프로퍼티로 저장되게 된다. 따라서 client.login함수에 process.env.TOKEN으로 토큰 값을 넘겨주어 로그인을 하는 것이다.

이후 뒤에 로그인이 되었는지 확인할 수 있는 메시지를 출력해주면 디스코드 봇 로그인이 끝나게 된다.

최종 코드

1
2
3
4
5
6
7
8
9
10
11
import { Client } from "discord.js";
import { config } from "dotenv";

config();

const client = new Client({ intents: ["Guilds"] });
client.login(process.env.TOKEN);
  
client.on("ready", () => {
	console.log("Typibot started");
});

3. 봇 실행 방법

프로젝트 최 상단 /package.json으로 오면 아래와 같은 코드가 있다.

1
2
3
4
5
{
	"scripts": {
		"test": "echo \"Error: no test specified\" && exit 1"
	}
}

이 코드는 프로젝트에서 실행할 명령어를 간단하게 줄여서 실행해주는 매크로같은 역할이다. 따라서 저 스크립트 목록에 봇을 실행시키는 명령어를 등록해서 간단하게 실행할 것이다.

1
2
3
4
5
{
	"scripts": {
		"start": "ts-node ./src/main"
	}
}

이후, 터미널에 아래 명령어를 입력하면 실행할 수 있다.

1
npm run start

근데 npm에서는 위 명령어를 아래처럼 줄여 쓸 수 있으므로 위 아래 둘 중 편한 명령어로 입력하면 실행된다.

1
npm start

4. 실행 결과

image

This post is licensed under CC BY 4.0 by the author.