디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

Hoplin의 개발일기

Discord Bot

디스코드봇 생성하기!(Generate Discord Bot to My Server - Python3)

J-Hoplin 2020. 3. 24. 19:26

최근에 여러 게임을 즐기고 있는 저는 디스코드 사용을 많이 함에 따라, 디스코드에서 편하게 사용해볼수 있는 기능들을 만들어 보고, 봇에 적용해 보고 있습니다. 앞으로 이 카테고리에서는 제가 구현해본 여러가지 기능들을 포스트해볼 예정입니다.

우선 오늘, 이 카테고리의 첫 글로는 디스코드 봇을 생성하는 방법에 대해 알아보겠습니다.

디스코드 봇을 생성하기 위해서는 우선 이 사이트로 들어가 주어야 합니다

https://discordapp.com/developers/applications/

Discord Developer Portal — API Docs for Bots and Developers

Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

discordapp.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

로그인을 하신 후에 제가 표시해둔 New Application을 클릭해줍니다. 저 버튼을 클릭을하면

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

다음과 같이 Crate an application 창이 나올겁니다. 저 창에는 자신의 디스코드 봇 애플리케이션의 이름을 작성해 주시면 됩니다. Create 버튼을 누르고 난 후에 이제 애플리케이션을 만들수 있는 페이지가 나올겁니다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

첫번째로 해줄것은 bot 애플리케이션을 생성해 주는 것입니다. 좌측 메뉴의 bot 메뉴로 들어와서 Add Bot 이라는 버튼을 클릭해 줍니다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

그러면 다음과 같이 봇 애플리케이션이 생성되게 됩니다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

그 후 좌측 메뉴에서 OAuth2메뉴로 와줍니다. OAuth2페이지에서 Scopes라는 메뉴에서 가운데에 있는 'bot'이라는 박스를 체크해줍니다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

해당 부분을 체크해 주시면 밑에 Bot Permissions라는 창이 새로 생기는데, 이 부분은 봇에게 부여할 권한들을 설정해 주는 부분입니다. 자신이 봇에게 부여해주고 싶은 권한들을 체크해주세요. 만약 좌측 상단의 administrator를 클릭해주면 모든 권한을 부여하게됩니다. 권한을 모두 선택해 주었다면 두 상자 가운데에 있는 링크 오른쪽에 있는 파랑색 Copy버튼을 눌러줍니다. 해당 버튼을 눌러주게 되면 링크 하나가 복사가 되는데 새창을 열고 링크창에 붙여넣기를 하고 엔터로 들어가 봅시다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

해당 링크를 들어가면 다음과 같은 창이 나옵니다. 가운데 봇 추가하기에서 자신이 봇을 추가하고자 하는 서버를 선택해주시면 됩니다. 단 , 선택할수 있는 서버는 자신이 관리자 권한을 가지고 있는 서버의 경우에만 해당됩니다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

KEPTCHA 까지 모두 해줍시다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

그 후 자신이 선택한 디스코드 방에 들어가게 되면 다음과 같이 봇이 오프라인 상태로 들어와있는것을 볼 수 있습니다.

저 봇을 활성화 해주기 위해서는 코드 작성을 해주어야 합니다. 디스코드 봇을 코딩할 수 있는 언어에는 대표적으로 Python3, JavaScript가 있습니다. 저는 우선 Python3를 이용했습니다. 실습환경은 Python3.7로 설치를 해주신 다음 , discord.py는 1.0.0버전으로 준비해주세요(3.7버전부터는 0.16.12버전을 지원하지 않으며, 문법들 또한 많이 바뀌었습니다.). Editor같은 경우 VS Code를 사용하시는 분들도 많지만, 저는 Jetbrain Pycharm 을 사용했습니다.

우선 테스트 코드로 이 코드를 사용해 봅시다. 밑에 있는 코드를 Editor에 붙여넣어주세요

import discord, asyncio,sys token = "" # Token Here from Bot Admin Page #Warning : if you make your bot's sourcecode as opensource do not open your token to the public. If you open token to the public you can attacked by others client = discord.Client() # use Client @client.event async def on_ready(): # do action 1 time when ready # discord.Status.online -> dnd : "다른 용무 중", idle : "자리 비움" await client.change_presence(status=discord.Status.online, activity=discord.Game("여기에는 디스코드 ~~하는중 부분에 표시되는것을 넣어주면 됩니다.")) # print status at right of discord UI print("I'm Ready!") # print state @client.event async def on_message(message): # do action when message sent if message.author.bot: # if chatter is bot return None # do not react print(message.content) if message.content.startswith("!테스트"): # if user send message !명령어 await message.channel.send("테스트 명령어!") if message.content.startswith("!넌누구니"): await message.channel.send("삐리리릭! 도우미봇이에요!") client.run(token) # Discord Bot will log in your channel with token you give.

해당 코드를 보면 token이라는 부분이 비어있는 것을 볼 수 있습니다. 이 token은 아까 봇 애플리케이션을 만들때 사용했던 페이지에서 얻을수 있습니다

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

Copy 버튼을 누르면 알아서 토큰이 복사됩니다. 토큰에 대해 주의할점은 토큰은 공개하지 않는것이 좋습니다. 봇테러의 원인이 될 수 있습니다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

저처럼 이렇게 토큰 변수 " " 사이에 토큰을 붙여넣기 해줍니다. 그리고 코드를 실행(run)해주세요(pycharm 같은 경우에는 alt + shift + F10입니다)

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

그럼 다음과 같이 프로그램이 실행되는것을 볼 수 있습니다.이제 디스코드로 돌아가 봅시다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

그럼 아까와는 달리 디스코드 봇이 온라인으로 되어있는것을 볼 수 있습니다. 즉, 프로그램이 실행되는 동안 디스코드 봇을 사용할 수 있는것입니다. 코드에는 기본적인 예시 명령어로 !테스트, !넌누구니 를 넣어 두었습니다. 한번 디스코드 채팅창에 해당 명령어를 작성해 봅시다.

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

그럼 다음과 같이 봇이 명령어에 맞게 대답하는 것을 볼 수 있습니다.

제가 앞에서 말했듯이 이 봇은, 프로그램이 실행되는 동안 디스코드 봇을 사용할 수 있다고 했습니다. 이말은 즉슨, 프로그램을 끄거나, 컴퓨터를 끄게 되는 즉시 봇은 자동으로 종료되게 된다는 것입니다. 저같은 경우에는 봇을 24시간 활성화시키기 위해 AWS에서 코드를 돌리고 있습니다. 해당 부분이 궁금하시면 제게 연락을 주시면 자세히 알려드리겠습니다.

+) 저는 디스코드 봇 코딩의 문법은 다루지 않을 예정입니다. 자세한 함수 및 명령어들은 discord.py documentation 을 읽어주시길 바랍니다.

https://discordpy.readthedocs.io/en/latest/

Welcome to discord.py — discord.py 1.3.2 documentation

discordpy.readthedocs.io

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

J-hoplin1/League-Of-Legend-Search-Bot

디스코드 봇 : LOL 전적 봇. Contribute to J-hoplin1/League-Of-Legend-Search-Bot development by creating an account on GitHub.

github.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

포스트 : https://jhoplin7259.tistory.com/m/119

기존 롤(League Of Legend) 디스코드 봇(Discord Bot) 라이엇 API로 재구현하기

사용방법은 맨 밑에 있습니다. 깃허브 주소 : https://github.com/J-hoplin1/League-Of-Legend-Search-Bot/tree/master/Riot%20API%20Version J-hoplin1/League-Of-Legend-Search-Bot 디스코드 봇 : LOL 전적 봇...

jhoplin7259.tistory.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

<파파고 API를 이용한 번역봇>
Github : https://github.com/J-hoplin1/Papago-API-Translate-Bot

J-hoplin1/Papago-API-Translate-Bot

디스코드 봇 : 네이버 papago API를 이용한 디스코드 번역 커맨드. Contribute to J-hoplin1/Papago-API-Translate-Bot development by creating an account on GitHub.

github.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi


포스트 : https://jhoplin7259.tistory.com/m/95?category=927506

디스코드봇(Discord Bot) : 파파고 번역봇(Papago Translation Bot)

* 이 소스코드를 상업적으로 이용하는것을 금지합니다(License : GPL-3.0). 소스코드 링크는 본문 밑에 있습니다. 디스코드봇 파파고 번역봇 소스코드를 공개합니다 - IDE : Jetbrain Pycharm Community - Python.

jhoplin7259.tistory.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi

<코로나 19 대한민국 상황 봇>
Github : https://github.com/J-hoplin1/Covid19-Information-bot

J-hoplin1/Covid19-Information-bot

디스코드 봇 : 코로나 바이러스 한국상황 봇. Contribute to J-hoplin1/Covid19-Information-bot development by creating an account on GitHub.

github.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi


포스트 : https://jhoplin7259.tistory.com/m/96?category=927506

디스코드봇(Discord Bot) : 코로나바이러스 한국상황 정보봇(Covid-19 Korea Status Bot)

* 이 소스코드를 상업적으로 이용하는것을 금지합니다(License : GPL-3.0). 소스코드 링크는 본문 밑에 있습니다. - IDE : Jetbrain Pycharm Community - Python : ver 3.7 - discord.py version : 1.0.1 - 데이터..

jhoplin7259.tistory.com

디스코드 검색 봇 만들기 - diseukodeu geomsaeg bos mandeulgi