저번 시간에 챗봇을 생성하였지만, 아직 비화성화, 즉 오프라인 상태일 것입니다.
이번시간에는 챗봇을 온라인 상태로 활성화시키고, 요청을 날렸을때, 응답이 오도록 해보겠습니다.
1. Token(토큰)값 받아오기
개발자 포털 창에서 내가 생성한 봇을 클릭하여 해당 창으로 들어가줍니다. 그리고 아래 그림처럼 접속을 하게 되었다면,
'Reset Token'버튼을 누르고, 토큰을 발급받아줍니다.
아래 문자열은 discord에서 챗봇을 생성하여 'reset token' 버튼을 눌렀을때 단 한번만 보여지는 토큰으로, 미리 알아두고 저장해두세요!
MTEwNDY3NTU5ODY2OTk3OTY2OA.G3Cf1w.WoCUbpi1Vp8A_fAs8eabYH_um11dQ-3n1YdsHI
2. module 다운로드 받기
아나콘다 프롬프트에서 아래와 같이 두개의 모듈을 다운로드 받아줍니다.
pip install discord
pip install data
3. 기본코드 작성하기
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='$',intents=discord.Intents.all()) #명령어의 시작이 $이다. 예를 들어 -> $안녕
@bot.event
async def on_ready():
print(f'{bot.user.name}이 연결 되었습니다.')
await bot.change_presence(status=discord.Status.online, activity=None)
bot.run("MTEwNDY3NTU5ODY2OTk3OTY2OA.G3Cf1w.WoCUbpi1Vp8A_fAs8eabYH_um11dQ-3n1YdsHI")
여기까지만 하고 실행을 누른다면 어떻게 될까요?
위와 같이 터지는 것을 볼 수가 있는데요, 이에 대한 원인을 알아보자면,
로그인을 시도하다가 해당 오류를 내뿜은 것 같습니다.
raise PrivilegedIntentsRequired(exc.shard_id) from None
discord.errors.PrivilegedIntentsRequired: Shard ID None is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page. If this is not possible, then consider disabling the privileged intents instead.
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x0000013F56A59F70>
Traceback (most recent call last):
위 커멘트를 보고 대충 요약하자면,
'Privileged Intents'가 필요하니 오류 메시지에 뜬 도메인 참고해서 그것들을 활성화하라는 뜻인것 같습니다.
해당 링크로 들어가서 아래와 같이 [Privileged Gateway Intents]에 있는 옵션들을 모두 활성화시켜줍니다.
[Save Changes]를 눌러 저장후, 토큰을 새롭게 발급받아, 파이썬코드에 적용시킨후, 다시 컴파일을 실행시켜 보도록 하겠습니다.
(아래 코드는 새롭게 발급받은 토큰값입니다.)
MTEwNDY3NTU5ODY2OTk3OTY2OA.GrF4uW.-YpUg-Bf7SnzaocAsLasFtVdMxYSuFX4KjnQLI
실행결과입니다.
디스코드 창에서도 제대로 온라인으로 활성화되어 있는 것을 알 수 있습니다.
참고 및 출처:
'업무자동화' 카테고리의 다른 글
discord용 챗봇을 구축해보자!(3) (0) | 2023.05.07 |
---|---|
discord용 챗봇을 구축해보자!(1) (0) | 2023.05.07 |
댓글