이 기사에서는 길드에서 6 분 (또는 그 이하) 내에 실행할 수 있는 완전히 사용자 정의 가능한 Discord 봇을 설정하는 방법을 보여 드리겠습니다. 또한 기본 예제가 작동 한 후 봇을 추가로 사용자 지정하는 데 사용할 수 있는 몇 가지 유용한 팁을 제공합니다.
우리는 Autocode를 사용하여 Discord API에 대한 인증, 수신 이벤트 처리, 봇의 Node.js 코드 호스팅과 관련된 무거운 작업을 모두 무료로 수행 할 것입니다. 온라인 편집기도 있으므로 시작하는 데 필요한 다른 것은 Discord 계정뿐입니다!
빠른 시작
Autocode의 Discord 시작 앱 페이지로 이동하여 시작하십시오. 봇의 소스 코드는 완전히 개방되어 있으므로 궁금한 점이 있으면 자유롭게 살펴보세요!
준비가 되면 녹색 무료 설치 버튼을 누릅니다. 아직 만들지 않았다면 Autocode 계정을 만든 다음 프로젝트 이름을 선택합니다.
다음 화면에서 Discord 계정을 연결하라는 메시지가 표시됩니다.
Link를 누른 다음 나타나는 모달에서 Link New Resource를 누르고 지침에 따라 Discord 앱을 연결하십시오. 여기에는 Discord의 개발자 포털에서 앱을 만들고 길드에 설치 한 다음 메시지가 표시되면 앱의 인증 자격 증명을 Autocode에 붙여 넣는 작업이 포함됩니다.
마지막으로 앱 설치를 누릅니다. 그리고 그게 다야! 길드에 #general 채널이 있는 경우 설치를 확인하는 환영 메시지가 표시됩니다. @BotName을 입력하여 메시지에서 봇을 언급하면 봇이 응답합니다!
어떻게 작동합니까?
Autocode는 이전에 제공 한 봇 자격 증명을 사용하여 Discord의 이벤트를 수신합니다. 이벤트를 수신하면 Autocode는 동일한 봇이 연결된 프로젝트에서 적절한 엔드 포인트를 트리거합니다.
이 특정 경우에 Autocode는 방금 설치 한 앱의 functions/events/discord/bot_mention.js 엔드 포인트를 트리거합니다. 이 엔드 포인트에는 메시지를 보내는 Autocode의 표준 라이브러리에서 discord.channels API의 messages.create 메서드에 대한 호출이 포함됩니다. 코드는 다음과 같습니다.
// authenticates you with the API standard library
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
/**
* An HTTP endpoint that acts as a webhook for Discord message.create event
* @param {object} event
* @returns {any} result
*/
module.exports = async (event, context) => {
let messageResponse = await lib.discord.channels['@0.0.2'].messages.create({
channel_id: `${event.channel_id}`,
content: [
`Hey <@!${event.author.id}>! I'm a bot powered by Autocode.`,
`You mentioned me in a message, so here I am!`
].join('\n'),
embed: {
title: 'Guild Information',
type: 'rich',
color: 0x00AA00, // Green color
description: 'You could add some information here for guild members to view!',
fields: [{
name: 'Message Formatting',
value: [
'Check out this link for more details on formatting message embeds:',
'https://discord.com/developers/docs/resources/channel#embed-object-embed-structure'
].join('\n')
}, {
name: 'Setting up Slash Commands',
value: [
'Check out the README for this bot on Autocode for help setting up slash commands:',
'https://autocode.com/app/discord/basic-discord-example/'
].join('\n')
}]
},
tts: false
});
return messageResponse;
}
Slash Commands
앱의 다른 엔드 포인트 인 functions/events/discord/command.js는 /member-count라는 슬래시 명령이 트리거 될 때 현재 길드에 있는 사용자 및 봇 수를 포함하는 메시지를 보냅니다.
그러나 이것이 작동하기 전에 Discord에 슬래시 명령을 등록해야 합니다. Discord에는 현재 이를 위한 내장 UI가 없지만 Autocode의 문서 페이지에서 필요한 API 요청을 만들어 설정을 할 수 있습니다.
discord.commands API 페이지의 생성 메소드로 이동하여 아래와 같이 매개 변수를 입력합니다.
길드 ID와 함께 guild_id 매개 변수를 입력합니다 (찾는 데 도움이 필요한 경우 문서 뒷부분의 팁 섹션 참조). 그런 다음 Authenticate and Link Accounts를 누르고 이전에 연결 한 Discord 봇을 선택합니다. 마지막으로 실행을 누릅니다. 축하합니다! 길드에서 슬래시 명령을 만들었습니다. / member-count를 입력하여 길드에서 사용해보세요. 모든 것을 올바르게 수행했다면 다음을 확인해야 합니다.
이런. 우리가 해야 할 일이 하나 더 있습니다!
권한있는 인 텐트 설정
functions/events/discord/command.js 엔드 포인트에 대한 코드를 보면 discord.guilds API의 members.list 메소드를 호출하는 것을 알 수 있습니다. Discord는 이 API를 권한 있는 것으로 취급하므로 이를 사용하려면 수동으로 봇에 대한 액세스 권한을 부여해야 합니다.
Discord 개발자 포털로 돌아가서 봇 설정을 엽니다. 봇 창을 열고 Privileged Gateway Intent 설정이 표시 될 때까지 아래로 스크롤 합니다.
Server Members Intent라는 토글을 활성화 한 다음 Discord 서버로 돌아가서 명령을 다시 실행하십시오. 그러면 적절한 메시지가 표시됩니다.
이제 시작 앱을 완전히 설정했습니다! Autocode에서 프로젝트를 다시 열어 다른 Discord 이벤트에 대한 새 끝점을 추가 할 뿐만 아니라 마음의 내용에 맞게 코드를 수정할 수 있습니다.
추가 팁
계속 빌드 할 때 유용 할 수 있는 몇 가지 추가 팁은 다음과 같습니다.
길드 ID 찾기
길드 ID (채널, 사용자, 역할 ID 포함)를 찾을 수 있는 한 가지 방법은 개발자 모드를 활성화하는 것입니다. 클라이언트의 왼쪽 하단에 있는 톱니 바퀴를 클릭하여 사용자 설정을 연 다음 왼쪽 사이드 바에서 고급 메뉴 항목을 클릭하고 개발자 모드 토글을 켭니다.
활성화되면 설정을 종료하고 왼쪽 사이드 바에서 봇이 있는 길드 아이콘을 마우스 오른쪽 버튼으로 클릭합니다. 나타나는 메뉴에는 새 사본 ID 항목이 포함됩니다.
선택하면 길드 ID가 클립 보드에 복사됩니다. 사용자, 채널 및 역할을 마우스 오른쪽 단추로 클릭하면 유사한 ID 복사 옵션이 있습니다.
메시지 서식 지정
discord.channels API를 사용하면 Discord에 간단한 메시지를 쉽게 게시 할 수 있으며 Discord는 쉽게 서식을 지정할 수 있도록 마크 다운도 지원합니다. 그러나 메시지가 더 복잡 해짐에 따라 다음 몇 가지 사항에 유의해야 합니다.
Useful Links
https://dev.to/hacubu/build-a-discord-bot-in-6-minutes-with-node-js-and-autocode-4n2d
등록된 댓글이 없습니다.