댓글 검색 목록

[Nodejs] Node.js 및 Autocode를 사용하여 6 분 안에 Discord 봇 구축

페이지 정보

작성자 운영자 작성일 21-05-03 18:14 조회 1,749 댓글 0

이 기사에서는 길드에서 6 분 (또는 그 이하) 내에 실행할 수 있는 완전히 사용자 정의 가능한 Discord 봇을 설정하는 방법을 보여 드리겠습니다. 또한 기본 예제가 작동 한 후 봇을 추가로 사용자 지정하는 데 사용할 수 있는 몇 가지 유용한 팁을 제공합니다.


Your bot responding with a message when it is mentioned 


우리는 Autocode를 사용하여 Discord API에 대한 인증, 수신 이벤트 처리, 봇의 Node.js 코드 호스팅과 관련된 무거운 작업을 모두 무료로 수행 할 것입니다. 온라인 편집기도 있으므로 시작하는 데 필요한 다른 것은 Discord 계정뿐입니다!


빠른 시작 


Autocode의 Discord 시작 앱 페이지로 이동하여 시작하십시오. 봇의 소스 코드는 완전히 개방되어 있으므로 궁금한 점이 있으면 자유롭게 살펴보세요!


준비가 되면 녹색 무료 설치 버튼을 누릅니다. 아직 만들지 않았다면 Autocode 계정을 만든 다음 프로젝트 이름을 선택합니다.


Name your Discord project 


다음 화면에서 Discord 계정을 연결하라는 메시지가 표시됩니다.


Link a Discord account 


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라는 슬래시 명령이 트리거 될 때 현재 길드에 있는 사용자 및 봇 수를 포함하는 메시지를 보냅니다.


Successful member count message 

그러나 이것이 작동하기 전에 Discord에 슬래시 명령을 등록해야 합니다. Discord에는 현재 이를 위한 내장 UI가 없지만 Autocode의 문서 페이지에서 필요한 API 요청을 만들어 설정을 할 수 있습니다.


discord.commands API 페이지의 생성 메소드로 이동하여 아래와 같이 매개 변수를 입력합니다.


Creating a Discord slash command via API request 


길드 ID와 함께 guild_id 매개 변수를 입력합니다 (찾는 데 도움이 필요한 경우 문서 뒷부분의 팁 섹션 참조). 그런 다음 Authenticate and Link Accounts를 누르고 이전에 연결 한 Discord 봇을 선택합니다. 마지막으로 실행을 누릅니다. 축하합니다! 길드에서 슬래시 명령을 만들었습니다. / member-count를 입력하여 길드에서 사용해보세요. 모든 것을 올바르게 수행했다면 다음을 확인해야 합니다.


Privileged intents required 


이런. 우리가 해야 할 일이 하나 더 있습니다!


권한있는 인 텐트 설정 


functions/events/discord/command.js 엔드 포인트에 대한 코드를 보면 discord.guilds API의 members.list 메소드를 호출하는 것을 알 수 있습니다. Discord는 이 API를 권한 있는 것으로 취급하므로 이를 사용하려면 수동으로 봇에 대한 액세스 권한을 부여해야 합니다.


Discord 개발자 포털로 돌아가서 봇 설정을 엽니다. 봇 창을 열고 Privileged Gateway Intent 설정이 표시 될 때까지 아래로 스크롤 합니다.


Privileged intent settings 


Server Members Intent라는 토글을 활성화 한 다음 Discord 서버로 돌아가서 명령을 다시 실행하십시오. 그러면 적절한 메시지가 표시됩니다.


Successful member count message 


이제 시작 앱을 완전히 설정했습니다! Autocode에서 프로젝트를 다시 열어 다른 Discord 이벤트에 대한 새 끝점을 추가 할 뿐만 아니라 마음의 내용에 맞게 코드를 수정할 수 있습니다.


추가 팁 


계속 빌드 할 때 유용 할 수 있는 몇 가지 추가 팁은 다음과 같습니다.


길드 ID 찾기 


길드 ID (채널, 사용자, 역할 ID 포함)를 찾을 수 있는 한 가지 방법은 개발자 모드를 활성화하는 것입니다. 클라이언트의 왼쪽 하단에 있는 톱니 바퀴를 클릭하여 사용자 설정을 연 다음 왼쪽 사이드 바에서 고급 메뉴 항목을 클릭하고 개발자 모드 토글을 켭니다.


Enabling developer mode 


활성화되면 설정을 종료하고 왼쪽 사이드 바에서 봇이 있는 길드 아이콘을 마우스 오른쪽 버튼으로 클릭합니다. 나타나는 메뉴에는 새 사본 ID 항목이 포함됩니다.


The copy id item 


선택하면 길드 ID가 클립 보드에 복사됩니다. 사용자, 채널 및 역할을 마우스 오른쪽 단추로 클릭하면 유사한 ID 복사 옵션이 있습니다.


메시지 서식 지정 


discord.channels API를 사용하면 Discord에 간단한 메시지를 쉽게 게시 할 수 있으며 Discord는 쉽게 서식을 지정할 수 있도록 마크 다운도 지원합니다. 그러나 메시지가 더 복잡 해짐에 따라 다음 몇 가지 사항에 유의해야 합니다.


  • 메시지에서 사용자 또는 봇을 언급하려면 특정 방식으로 해당 ID를 괄호로 묶어야 합니다. 다음은 예입니다.이 메시지는 사용자에게 태그를 지정합니다 : <@! 000000000000>.
  • Discord는 메시지의 링크를 자동으로 풀어 유용한 알림을 쉽게 만드는 데 유용하게 사용할 수 있습니다.
  • 메시지에 풍부한 임베드를 추가하면 채널에서 돋보일 수 있습니다. 샘플 앱 엔드 포인트의 메시지를 가능한 항목에 대한 시작점으로 사용하고 Discord 문서에서 포함 개체 필드의 전체 목록을 확인할 수 있습니다.
  • 임베딩에 대한 한 가지 문제점은 색상 매개 변수입니다. 문자열이 아닌 숫자를 사용합니다. RGB 색상을이 매개 변수의 숫자로 표현하는 편리한 방법은 16 진수 ( '# 00AA00'대신 녹색에 따옴표가 없는 0x00AA00)를 사용하는 것입니다.
  • tts는 "text to speech"의 약자입니다. True로 설정하면 Discord가 올바른 설정을 가진 모든 사람에게 메시지를 큰 소리로 읽게 되므로 다른 사람과 길드에서 테스트 할 때 주의하십시오!

Useful Links 




https://dev.to/hacubu/build-a-discord-bot-in-6-minutes-with-node-js-and-autocode-4n2d



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.