[Discord Bot] 봇 로그인 #2
1. 디스코드 봇 생성
디스코드 봇을 로그인하기 위해선 우선 아래 링크로 들어가서 디스코드 봇을 만들어야 한다.
New Application
버튼을 눌러 봇을 만들고 들어오면 이러한 화면이 뜰 것이다.
여기서 우리가 필요한 것은 로그인할 때 필요한 토큰이다.
Bot
으로 온다면 TOKEN
이라는 항목이 있다.
TOKEN
은 로그인을 할 때 인증하는 도구로 외부에 절대 노출되면 안되는 정보이다.
따라서 Reset Token
버튼을 눌러 생성된 토큰을 복사해서 프로젝트 /.env
파일에 아래와 같이 저장해야 한다.
1
TOKEN=복사한토큰
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