지난 글에서 봇 계정을 만들었다.
이제 이 봇이 작동하게 코드를 짜보자!
python을 쓸 건데 파이참도 안 깔려 있고 해서 이미 있는 vscode에 python extension을 설치해서 썼다.

이제 아무 경로에다가 새 파일을 하나 만들어준다.
노란 박스 아이콘을 클릭하면 만들 수 있다.
이름도 아무거나 상관 없고, 나는 studyBot.py로 했다.

import discord
TOKEN = '봇의 토큰을 여기에 넣는다'
class MyClient(discord.Client):
# 동작 준비가 되면 터미널에 유저 이름을 출력한다(봇쨩)
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
# 누군가 봇쨩에게 메세지를 보내면 터미널에 발송자 이름과 내용을 출력한다
async def on_message(self, message):
print('Message from {0.author}: {0.content}'.format(message))
client = MyClient()
client.run(TOKEN)
그런데 아마 이 코드를 작성하면 이렇게 에러가 뜰 것이다.

discord가 없단다!
깔아주면 된다.
...
나는 이 discord를 까는 과정에서 정말... 정말 정말 너무 힘들었다...
하지만 해결했다!
pip install discord
원래 이 명령어를 치면 된다고들 그런다.(난 안 됐다는 뜻이다.)
내가 해결한 방법은 이렇다.

pip install discord
pip3가 pip 상위 호환이라고 하는데 나는 pip는 없고 pip3만 있어서 에러가 난 것이다.
pip3으로 해준다.
pip install discord
헉 뭐야 이 엄청난 에러들!
당황할 수 있지만 언제나 에러들은 뜯어 보면 설명도 잘 해주고 해결법도 같이 알려준다.
현재 사용 중인 Python 환경이 외부에서 관리되고 있어 시스템 전역에 Python 패키지를 설치할 수 없다.
고 합니다.
pipx설치해서 해봐도 안되고 --user를 붙여봐도 해결이 안됐다.
그런데 에러문 가운데쯤 보면 코드가 세 줄 있다.
가상 환경을 만들어서 쓰라는 얘기고, 결국 이걸로 해결했다.
아래 코드를 한 줄씩 입력해준다.
python3 -m venv myenv
source myenv/bin/activate
pip install discord
간단하게 설명하자면 가상 환경을 만든다 → 가상 환경을 활성화 한다 → 그 가상 환경에서 discord.py를 설치한다

중간에 에러 난 거는 pip 업그레이드 하라고 해서 pip install --upgrade pip 하고 다시 했더니 해결됐다.

discord가 정상적으로 import 된다!
코드 3번 라인에 토큰 관련 내용이 있다.
저번에 봇 계정 만들었던 이 사이트에 다시 들어가자.

사진이랑 이름도 바꿔줄 수 있어서 바꿔줬다 ㅎㅎ
가운데 Reset Token 클릭, Yes, do it! 클릭, 비밀번호 입력 해주면 토큰이 재발급 된다.

노란색에 토큰이 있을 것이다!
잘 저장해주고, 하단에 Save Changes도 꼭꼭 눌러주자.
이 토큰을 코드 3번 라인 따옴표 안에 넣어주면 된다.

그리고 실행 버튼을 눌러주면 ....!
에러 난 터미널을 실수로 밀어버려서 캡쳐본이 없는데, 마지막 라인이 aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discord.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)')] 이런 식으로 끝난다.
SSL이라니까 인증서 오류고... 맥에서 자주 난단다.(또 맥이다)
VSCode 터미널 말고 그냥 터미널을 켜서 하나만 실행시켜주면 해결된다.

1. Applications 폴더 안에 Python 폴더가 있다. 들어가자.
2. sudo ./Install\ Certificates.command를 입력한다.
3. 비밀번호를 입력한다.
4. VSCode에서 다시 코드를 실행시켜보자.


잘 실행되고, Discord에 들어가보면 우리의 봇쨩이 온라인 상태가 되었다!!