Embed란?
디스코드를 사용하시는 유저분이라면, 봇들이 다음과 같은 메세지들을 보내는걸 보신적이 있을겁니다.
일반적인 텍스트 메세지가 아닌, 블록으로 둘러쌓인 형태의 메세지입니다.
칙칙하고 가독성이 떨어지던 텍스트를 다음과 같이 예쁘고 가독성이 뛰어나게 바꿀 수 있습니다.
실제로 대부분의 봇들은 간단한 메세지가 아니라면 대부분 Embed를 사용해 메세지를 보냅니다.
Embed의 생성
Embed는 다음과 같이 간단하게 생성 가능합니다.
embed = discord.Embed(title="TITLE")
여기서 title은 Embed를 생성할때 필수적으로 들어가야하는 요소입니다.
생성시 설정 가능한 요소들과 그 자료형은 다음과 같습니다.
title - str
description - str
url - str
timestamp - datetime.datetime
color - int
color 값은 16진수를 이용하면 편합니다.
빨강색은 0xff0000, 초록색은 0x00ff00, 파란색은 0x0000ff로 표현 가능합니다.
Ex)
embed = discord.Embed( title="title", description = "description", color = 0x00ff00, timestamp = datetime.datetime.now(), url = "https://www.youtube.com/watch?v=Ue7U67ENudQ")
해당 임베드는 다음과 같이 생겼을 것입니다.
Embed 메세지 전송
아마 discord.py를 잠깐이라도 해보신 분들이라면, 다음 함수를 알고계실겁니다.
await TextChannel.send()
채널에 메세지를 보내는 가장 기본적이라고 할 수 있는 함수죠.
send 함수를 이용해 Embed는 다음과 같이 보낼 수 있습니다.
await TextChannel.send(embed= myembed)
(myembed는 제가 임의로 정한 discord.Embed 형식 변수입니다. 저자리에 다른걸 집어넣어도 상관 없습니다)
!embed 명령어를 사용하면 아까 만든 embed를 전송하는 봇을 만들어보겠습니다.
import discord import datetime client = discord.Client() @client.event async def on_message(message): if(message.content == "!embed"): embed = discord.Embed( title="title", description = "description", color = 0x00ff00, timestamp = datetime.datetime.now(), url = "https://www.youtube.com/watch?v=Ue7U67ENudQ") await message.channel.send(embed=embed) client.run('token')