discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๊ฒ ์๊ฐํ ๊ณ๊ธฐ๋ ์น๊ตฌ์ ๊ฒ์ ์ด์ผ๊ธฐ๋ฅผ ํ๋ค๊ฐ ์ด๋ฐ ๋ด์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค๊ณ ์น๊ตฌ๊ฐ ์ธ๊ธ์ ํ์๋ค. (๊ทธ ๋น์ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ๊ณ ์ ์๊ฐํ๋ ๋ด์ด ์คํ๋ ๊ฒ์ ์์๋ค.) ๊ทธ๋์ ํ ๋ฒ ํด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ ํ๊ณ , ํ ๋ฌ ์ ๋ ๋ฆ์ฅ์ ๋ถ๋ฆฌ๋ค๊ฐ ์์์ ํ๊ฒ ๋์๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ ํ๊ณ ๋ณด๋ discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ํธํ๊ฒ ๋์ด์์ด์ ์์ฝ๊ฒ ํ๋กํ ํ์
์ ๋ง๋ค ์ ์์๊ณ , ์ค์ ๊ฒ์ ๊ธธ๋ ๋์ค์ฝ๋์ ์ ์ฉํด์ ์ฌ์ฉํ๊ณ ์๋ ์ค์ด๋ค. ์ฒ์์๋ ๊ฐ๋จํ๊ฒ ์ฐ์ต์ฉ์ผ๋ก ๋ง๋ ๋ด์ด๋ผ ๊ตฌ์กฐ์ ๋ง์ ์ ๊ฒฝ์ ์ฐ์ง ์์๋ค. ํ์ง๋ง ๋ง๋ค๊ณ ๋ณด๋ ์์ฌํ ์๊ฒจ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ๊ฐ์ ํ๊ณ ์๋๋ฐ ๊ตฌ์กฐ๋ ์กฐ๊ธ์ฉ ๋ค๋ฌ์ผ๋ฉด ์ข์ ๋ด์ด ๋์ง ์์๊น ์๊ฐํ๋ค.
discord.js
๊ฐ๋ฐ์ ์ฐธ๊ณ ํ ๋ฌธ์๋ ๋จ์ฐ์ฝ discord.js ๊ฐ๋ฐ์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์๋ค.
์ฐ์ ๋ด๊ฐ ๊ฐ๋ฐ์ ์ฌ์ฉํ ์คํ์ ๋ค์๊ณผ ๊ฐ๋ค.
IDE
: Visual Studio Code
Libaraies
: discord.js, axios, cheerio, nodemon
- Javascript๋ ES5 ๋ฌธ๋ฒ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค.
๋จผ์ ๋์ค์ฝ๋ ๋ด์ ๋ง๋ค๊ณ ํ ์คํธ ํ๊ธฐ ์ํด์๋ ๋์ค์ฝ๋ ํ์๊ฐ์ ์ ์งํํด์ผํ๋ค.
๋์ค์ฝ๋ ๊ณต์ ํํ์ด์ง์ ์ ์ํด์ ์ฑ์ ๋ค์ด๋ก๋ ํ๊ณ ๋น ๋ฅด๊ฒ ํ์๊ฐ์ ์ ์งํํ๊ณ ์จ๋ค.
์ฐ์ ๋์ค์ฝ๋ ํ์๊ฐ์ ๋ ํ๊ณ ์ฑ๋ ๋ค์ด๋ก๋๋ฅผ ํ๋ค๋ฉด ์ค์ ๋ก ํ ์คํธํ ๋ด์ ์์ฑํด์ผ ํ๋ค.
๋ด ์์ฑ ํํ์ด์ง๋ ๋์ค์ฝ๋ ๊ฐ๋ฐ์ ํฌํธ์์ ์งํํ๋๋ก ํ๋ค. ํํ์ด์ง์ ์ ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ ๋ง์ดํ ์ ์๋ค.
๋๋ ์ง๊ธ 2๊ฐ์ง์ ๋ด์ ๋ง๋ค์ด์ ์ฌ์ฉ์ค์ธ๋ฐ ๊น๊ฟ์ ์ค์ ๋ก ๊ธธ๋ ๋์ฝ ์๋ฒ์์ ์ฌ์ฉ์ค์ธ ๋ด์ด๊ณ ๊น๊ฟ ์๋ค์ ๊ฐ๋ฐํ ๋ ๋ฏธ๋ฆฌ ํ
์คํธํ๋ ๋ด์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ์ด ๋ด์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
์์ ์ฌ์ง์ฒ๋ผ New Application
์ ํด๋ฆญํ๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์ด์ผ๋ก๊ทธ ์ฐฝ์ด ๋จ๋๋ฐ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฆ์ ์ ๋๋ค. (๋ด ์ด๋ฆ์ ๋ฐ๋ก ์ง์ ํ ์ ์์ผ๋ ์ด๋ป๊ฒ ๋ณด๋ฉด ํ๋ก์ ํธ ์ด๋ฆ ์ค์ ํ๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.) ๊ทธ๋ฆฌ๊ณ Create
๋ฒํผ์ ๋๋ฌ์ค๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ผ๋ก ์ด๋์ด ๋๋๋ฐ ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๋ณด๋ฅผ ์ ๋ ๋ถ๋ถ์ธ๋ฐ ๋๋ ๋ค๋ฅธ๊ฑด ์ ๋ชฐ๋ผ์ ๋ฑํ ์ค์ ํ์ง ์์๋ค...๐
์ฌ๊ธฐ์ ์ฐ๋ฆฌ์๊ฒ ์ค์ํ ๋ถ๋ถ์ ๋ค๋น๊ฒ์ด์
๋ฐ์ ์๋ Bot
์ด๋ผ๋ ๋ฉ๋ด์ด๋ค. ํด๋น ๋ฉ๋ด๋ฅผ ๋๋ฅด๋ฉด ๋ค์ ํ๋ฉด์ด ๋ฌ๋ค.
์ฌ๊ธฐ์๋ ๋ค๋ฅธ ์ค์ ๊ฐ์ ์ ๋ชฐ๋ผ์ ๋ด ์ด๋ฆ๋ง ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ฝ๋์์ ํด๋น ๋ด์ ์ ๊ทผํ๊ธฐ ์ํด์ ํ ํฐ๊ฐ์ ์
๋ ฅํด์ฃผ์ด์ผ ํ๋๋ฐ ์ด๋ฆ ์๋ ๋ณด๋ผ์ Copy
๋ฒํผ์ ๋๋ฌ์ ํ ํฐ์ ์ป์ผ๋ฉด ๋๋ค.
์ด๋ ๊ฒ ๋ด ์์ฑ๊น์ง ์๋ฃ๊ฐ ๋์๋ค. ๊ทธ๋ผ ํด๋น ๋ด์ ๋ด๊ฐ ํ
์คํธํ ๋์ค์ฝ๋ ์ฑ๋์ ์ด๋ํด์ ์ํ๋ ๋ด์ ์์ฑํ ์ ์๋๋ก ์ด๋ํด๋ณด๋๋ก ํ์.
์์ ์ฌ์ง์ ์ฐธ๊ณ ํด์ ์ผ์ชฝ ๋ค๋น๋ฐ์์ OAuth2
์ ๋๋ฌ์ ํ๋ฉด์ ์ด๋ํ๊ณ ๋ฐ์ผ๋ก ์คํฌ๋กค์ ๋ด๋ฆฌ๋ฉด ๋ด์ Scope
๋ฅผ ์ค์ ํ ์ ์๋๋ฐ ์ฐ๋ฆฌ๋ ๋ด์ผ๋ก ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ด์ ์ฒดํฌํ๋ค. (๋ค๋ฅธ Scope
๋ฅผ ์ํ๋ฉด ์ค๋ณต์ผ๋ก ์ฒดํฌํ๋ฉด ๋๋ค. ์ ์ ๋ชฐ๋ผ์...๋ด๋ง...๐)
๊ทธ๋ฌ๋ฉด ํ๋จ์ URL
์ด ์์ฑ๋๋๋ฐ ์ค๋ฅธ์ชฝ์ ๋ณด๋ผ์ Copy
๋ฒํผ์ ๋๋ฅด๋ฉด ๋งํฌ๊ฐ ๋ณต์ฌ๊ฐ ๋๊ณ ํด๋น ๋งํฌ๋ฅผ Browser
์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ๋ด ์ถ๊ฐ ํ๋ฉด์ด ๋จ๊ฒ ๋๋ค.
์ฌ๊ธฐ์ ์์ ์ด ํ ์คํธ ํ๊ธฐ๋ฅผ ์ํ๋ ์๋ฒ๋ฅผ ์ ํํ๋ฉด ๋๋๋ฐ ์๋ก ๊ฐ์ ํด์ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ ๋์ค์ฝ๋ ์ฑ์ผ๋ก ๋ค์ด๊ฐ์ ์๋ฒ๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋๋๋ฐ ํด๋น ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํด์ ์์ฑํ๊ณ ๋์์ค๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์๋ฒ๋ฅผ ํ๋ ์ ํํ๋ฉด ํ๋จ์ ๋ณด๋ผ์ Authorize
๋ฒํผ์ด ํ์ฑํ๊ฐ ๋๊ณ ํด๋ฆญํ๋ฉด ํด๋น ์๋ฒ๋ก ๋ด์ด ์ถ๊ฐ๊ฐ ์๋ฃ๋๋ค.
๋๋ ์ด๋ฏธ ๊น๊ฟ ์๋ค๐พ ์ ์ด๋ํด๋ ์ํ๊ณ , ๋ฒจ๋ก๊ทธ ๋ด๐พ ์ด ํ๋จ์ ์คํ๋ผ์ธ์ผ๋ก ์ถ๊ฐ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
์ฌ๊ธฐ๊น์ง ์์ผ๋ฉด ์ผ๋จ ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ ๋๋ ์ํ๋ค! ๋ฐ๋ผ์ ์ด์ ๋ ๋๋ง์ ์๋ํฐ๋ฅผ ์ผ์ ์ฝ๋ฉ์ ํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๋๋ก ํ๊ฒ ๋ค. ์ฐ์ ์ ๊ฐ๋จํ๊ฒ ์๊ฐ๋ฅผ ํ๊ณ ๋ค์ ํฌ์คํ ์์๋ ํ์ด ์๋ค๋ฉด ํ์ ์๊ฐํด๋ณด๋๋ก ํ ์์ ์ด๋ค.
์ฐ์ discord.js
๋ฅผ ์ด์ฉํ๋ ๋งํผ javascript (Node.js)
๋ฅผ ์ด์ฉํ ์์ ์ด๊ณ , ๋ฌธ๋ฒ์ ES5
๋ฌธ๋ฒ์ ์ฌ์ฉํ ์์ ์ด๋ค. ๋ฐ๋ผ์ ๋จผ์ npm init
์ ์ด์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค.
ํ์๋ ์ด์์ฒด์ ๋ฅผ ์๋์ฐ๋ฅผ ์ฌ์ฉ์ค์ด๊ธฐ์ cmd
๋ฅผ ์ผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋๋ก ํ๊ฒ ๋ค. (6์ WWDC์์ ๋งฅ๋ถ 14์ธ์น ๊ณต๊ฐ์ข ํด์ฃผ์ธ์...ใ
ใ
)
์ฌ๊ธฐ์ ํ๊ฐ์ง ๋ง์ ์ฌ๋๋ค์ด ์๋ ๊ฟํ์ผ ์ ์๋๋ฐ ์๋์ฐ์ ๊ฒฝ์ฐ ํด๋ ๊ฒฝ๋ก ๋ถ๋ถ์
cmd
๋ฅผ ์น๋ฉด ํด๋น ๊ฒฝ๋ก์ ์ ์๋ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ป์ ์ ์๋ค.
์ฌ๊ธฐ์ npm init
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์๋๋ก ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ๋ค.
Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.
C:\Users\junsugi\Desktop\react-workspace>cd velogbot
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (velogbot) velogbot # ํ๋ก์ ํธ๋ช
(์๋ฌธ์๋ก๋ง ์์ฑ)
version: (1.0.0) 0.0.1 # ์ฑ ๋ฒ์ (์ ํญ์ 0.0.1 ๋ถํฐ ์์)
description: ๋ฒจ๋ก๊ทธ ๋ด # ์ฑ ์ค๋ช
(์์ ๋กญ๊ฒ ์ ์ผ๋ฉด ๋ฉ๋๋ค.)
entry point: (discord.js) index.js # ์ฑ์ ์คํํ๋ฉด ๊ฐ์ฅ ๋จผ์ ์ฝํ ํ์ผ (Java๋ก ์น๋ฉด main ํจ์๋ฅผ ์ง์ )
test command:
git repository:
keywords:
author: junsugi # ์ ์๋ช
license: (ISC)
About to write to C:\Users\junsugi\Desktop\react-workspace\velogbot\package.json:
{
"name": "velogbot",
"version": "0.0.1",
"description": "๋ฒจ๋ก๊ทธ ๋ด",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "junsugi",
"license": "ISC"
}
Is this OK? (yes) yes
์์ ์ค์ ๊ฐ๋ค์ ์ ๋ถ ์์ฑ๋ package.json
์์ ์ธ์ ๋ ์ง ์์ ํ ์ ์๋ค.
๋ฐ๋ผ์ package.json
์ด ์กด์ฌํ๋ ํด๋์์ ๋ช
๋ น ํ๋กฌํํธ์ฐฝ์ npm install
์ ์
๋ ฅํ๋ค.
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN velogbot@0.0.1 No repository field.
up to date in 0.964s
found 0 vulnerabilities
๋ค์๊ณผ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๊ฐ ๋๊ณ node_modules
๋ผ๋ ํด๋๊ฐ ์์ฑ๋์์ผ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ค์ด๋ก๋๊ฐ ๋์์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ํด๋น ํด๋์๋ ์ฐ๋ฆฌ๊ฐ node.js
๋ฅผ ์ด์ฉํ ๋ ์ฌ์ฉํ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ด๊ฒจ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ง์ discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์
๋ ฅํด์ ๋ค์ด๋ก๋ ํ ์ ์๋๋ก ํ๋ค.
๋ค์ด๋ก๋ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค. npm install discord.js --save
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm install discord.js --save
npm WARN velogbot@0.0.1 No repository field.
+ discord.js@12.5.3
added 15 packages from 17 contributors and audited 15 packages in 1.658s
found 0 vulnerabilities
์ด์ ๋ ์๋ํฐ๋ฅผ ์ผ์ discord.js
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด๋ณด๋๋ก ํ๊ฒ ๋ค. ์์ ์ฝ๋๋ discord.js
๊ฐ๋ฐ์ ํฌํธ์ ์๋๋ฐ ์ ๋์์๋ค. (์๋ก ์ ๋งํฌ๋ ํ์ด์ง์ ๋์ผ)
ํํ์ด์ง์ ์ ์ํด์ ์ผ์ชฝ์ ๋ค๋น๋ฐ์ ๋ค์ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ ์์ ์ฝ๋๋ฅผ ๋ณต์ฌํ ์ ์๋๋ก ํ๋ค.
Creating Your Bot > Getting your bot up & running > Logging in to Discord
- ํด๋ฆญ์ ํด๋น ํ์ด์ง๋ก ๋ฐ๋ก ์ ์ํ ์ ์์ต๋๋ค.
ํด๋น ํ์ด์ง์ ๋ค์ด๊ฐ์ง ์์๋ ๋ด๊ฐ ๋ณต์ฌํด์๋ค! ํน์ ํ์ด์ง์ ๋ค์ด๊ฐ๋ณด๊ณ ์ถ์ผ๋ฉด ๋ค์ด๊ฐ๋ณด๋๋ก ํ์!
const Discord = require('discord.js'); // discord.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์ถ
const client = new Discord.Client(); // Client ๊ฐ์ฒด ์์ฑ
// discord ๋ด์ด ์คํ๋ ๋ ๋ฑ ํ ๋ฒ ์คํํ ์ฝ๋๋ฅผ ์ ๋ ๋ถ๋ถ
client.once('ready', () => {
console.log('Ready!');
});
// ๋ด๊ณผ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ๋ถ๋ถ
client.login('your-token-goes-here');
๋ฐ๋ผ์ ์๊น ํ ํฐ์ ๊ฐ์ง๊ณ ์์ client.login()
๊ดํธ ์์ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค. (๊น๋จน์์ผ๋ฉด ๋ค์ ํ์ธํ๊ธฐ!)
๋ฃ์ด์ฃผ๊ณ package.json
ํ์ผ๋ก ๋ค์ด๊ฐ์ scripts
์น์
์ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ถ๊ฐํด์ค๋ค.
"scripts": {
"start": "node index.js"
"test": "echo \"Error: no test specified\" && exit 1"
},
scripts
๋ถ๋ถ์ ์ ํ ๋ช
๋ น์ด๋ ๋ช
๋ น ํ๋กฌํํธ์์ npm run
๋ช
๋ น์ด์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ ์ง๊ธ ์ ์ start
๋ผ๋ ๋ช
๋ น์ด๋ index.js
๋ฅผ ์คํ์์ผ์ฃผ๋ ๋ช
๋ น์ด์ด๋ค.
์ฐ์ ์คํ์ํค๊ธฐ ์ ์ ์์ ์์ฑํ ์ฝ๋์ ๋ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์๋๋ก ํ๋ค.
// ๋์ค์ฝ๋ ์๋ฒ์ ์์ฑ๋๋ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ์์ ํ๋ ๋ฆฌ์ค๋
client.on('message', message => {
console.log(message.content);
});
ํด๋น ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค๋ฉด package.json
์ด ์กด์ฌํ๋ ํด๋์์ ๋ช
๋ น ํ๋กฌํํธ๋ฅผ ์ผ๊ณ npm run start
๋ฅผ ์ ์ด์ค๋ค. ๊ทธ๋ฌ๋ฉด Ready!
๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์ฝ์์ ์ถ๋ ฅ๋๋๋ฐ ๊ทธ๋ ๊ฒ ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋ด๊ณผ ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ด๋ค. (๋ช ์ด ์ ๋ ์๊ฐ์ด ์์๋ ์ ์์ต๋๋ค.)
C:\Users\junsugi\Desktop\react-workspace\velogbot>npm run start
> velogbot@0.0.1 start C:\Users\junsugi\Desktop\react-workspace\velogbot
> node index.js
Ready! # ํด๋น ๋ก๊ทธ๊ฐ ๋ด๋ค๋ฉด ์ฑ๊ณต!
๊ทธ๋ฆฌ๊ณ ๋์ค์ฝ๋๋ฅผ ํ์ธํด๋ณด๋ฉด ๋ฒจ๋ก๊ทธ๋ด(์์ ์ ๋ด)์ด ์จ๋ผ์ธ์ด ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋น ์ฑ๋์ ์ฑํ
์ ์
๋ ฅํด๋ณด๋๋ก ํ์ (์ผ์ชฝ ๋ค๋น๋ฐ์ ์ฑํ
์ฑ๋์ด ์๋ค๋ฉด + ๋ฒํผ์ ๋๋ฌ์ ์ฑํ
์ฑ๋ ํ๋๋ฅผ ์์ฑํด์ฃผ๋๋ก ํ์!)
๋๋ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํด์ฃผ์๊ณ ์ฝ์์ฐฝ์ ๋ณด๋ฉด ํด๋น ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
์ด๋ ๊ฒํด์ discord.js
๋ฅผ ์ฌ์ฉํ ์ค๋น๋ ๋ชจ๋ ๋ง๋ฌด๋ฆฌ๊ฐ ๋์๊ณ ๊ฐ๋จํ ํํ ๋ฆฌ์ผ๊น์ง ์งํํด๋ณด์๋ค.
๋ญ๊ฐ ๋๊ฒ ๊ฑฐ์ฐฝํ๊ณ ์ด๋ ค์ ๋ณด์ผ ์๋ ์์ ์ ์๋ค. ํ์ง๋ง javascript
๋ง ์๊ณ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ค๋ฉด ์ค์ ๋ก ๊ฐ๋ฐ์ ์ฒ์ ์์ํ๋ ๋ถ๋ค๋ ์ฌ๋ฐ๊ฒ ์
๋ฌธํ ์ ์๋ ๋ถ์ผ๋ผ๊ณ ์๊ฐํ๋ค.
๋งค๋ฒ ์ฝ๋ฉ์ ์
๋ฌธ์ด ์น ๋ง๋ค๊ธฐ๋ ๋๋ฌด ์ง๋ฃจํ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋์ ํด๋น ํฌ์คํ
์ ์ฌ๋ฆฌ๊ฒ ๋ ๊ณ๊ธฐ๋ ์๊ณ , ๋ง๋ค๊ณ ๋ณด๋๊น ๋ฟ๋ฏํ๊ณ ๊ฒฐ๊ณผ๋ฌผ๋ ๋น ๋ฅด๊ฒ ๋ฐ์๋ณผ ์ ์์ด์ ์ฌ๋ฐ์๋ค. ๋ค์ ํฌ์คํ
์๋ ์ด์ cheerio
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ axios
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ์น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ถ๋ ฅํด์ค ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณผ ์์ ์ด๋ค.
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง!
ํน์
client.on('message', message => {
console.log(message.content);
});
์ด ์ฝ๋๋ ์ด๋์ ์ถ๊ฐํ๋์ง ์๋ ค์ฃผ์ค ์ ์๋์?
์์ฆ ๋ง์ด ๋ฐ์์ ๊ฐ๋ด์ฌ๐ข
๊ธฐ๋ค๋ฆฌ๊ณ ์๊ฒ ์ต๋๋ค!๐