자동화 애플리케이션/챗봇 Chatbot

주기적으로 메시지를 보내는 디스코드 봇 만들기

General AI 2024. 7. 6. 14:05
728x90
반응형

Discord Bot 튜토리얼: 주기적으로 메시지를 보내는 봇 만들기

Python을 사용하여 Discord 서버에 주기적으로 메시지를 보내는 봇을 만드는 방법을 알아보겠습니다. 이 봇은 서버 공지, 정기적인 알림, 또는 재미있는 메시지를 자동으로 전송하는 데 유용하게 사용될 수 있습니다.

Discord Bot 튜토리얼: 주기적으로 메시지를 보내는 봇 만들기

환경 설정

이 튜토리얼을 시작하기 전에, Discord 봇 개발을 위한 기본적인 환경 설정이 필요합니다. 아래 링크의 가이드를 참고하여 Discord 개발자 포털에서 봇을 생성하고, 필요한 라이브러리를 설치하는 과정을 진행해주세요.

 

Discord 디스코드 봇 만들기: 설정부터 간단한 응답까지

 

위 가이드를 통해 다음 사항들을 준비해주세요:

  1. Discord 개발자 포털에서 봇 생성
  2. Python 3.7 이상 설치
  3. discord.py 라이브러리 설치
  4. python-dotenv 라이브러리 설치
  5. Discord 봇 토큰 획득

환경 설정이 완료되었다면, 이제 주기적으로 메시지를 보내는 봇을 만들어 봅시다!

코드 살펴보기

먼저, 전체 코드를 살펴보겠습니다:

import os
import asyncio
from dotenv import load_dotenv
import discord
from discord.ext import commands, tasks

# .env 파일에서 환경 변수 로드
load_dotenv()

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
    print(f'{bot.user} 봇이 준비되었습니다!')
    send_periodic_message.start()

@bot.command(name='안녕')
async def hello(ctx):
    await ctx.send(f'안녕하세요, {ctx.author.name}님!')

@bot.command(name='정보')
async def info(ctx):
    await ctx.send('저는 Python으로 만들어진 간단한 Discord 봇입니다.')

@tasks.loop(minutes=1)  # 1분마다 실행
async def send_periodic_message():
    channel = bot.get_channel(int(os.getenv('CHANNEL_ID')))  # 메시지를 보낼 채널 ID
    if channel:
        await channel.send("안녕하세요! 1분마다 보내는 정기적인 메시지입니다.")

@send_periodic_message.before_loop
async def before_send_periodic_message():
    await bot.wait_until_ready()  # 봇이 준비될 때까지 기다립니다.

# .env 파일에서 봇 토큰을 가져옵니다
bot.run(os.getenv('DISCORD_TOKEN'))

사용 방법

  1. .env 파일을 생성하고 다음 내용을 추가합니다:
DISCORD_TOKEN=your_bot_token_here
CHANNEL_ID=your_channel_id_here
  1. bot.py 코드를 실행합니다:
  2. 디스코드에서 다음과 같은 주기적인 메시지를 확인할 수 있습니다.

주기적으로 메시지를 보내는 디스코드 봇 만들기


주의사항

  • 1분마다 메시지를 보내는 것은 테스트 목적으로는 좋지만, 실제 사용 시에는 더 긴 간격을 사용하는 것이 좋습니다.
  • Discord의 rate limit을 고려해야 합니다. 너무 빈번한 메시지 전송은 봇이 일시적으로 차단될 수 있습니다.

이 튜토리얼을 통해 주기적으로 메시지를 보내는 Discord 봇을 만드는 방법을 배웠습니다. 이를 기반으로 더 다양하고 유용한 기능을 가진 봇을 만들어 보세요!

728x90
반응형