LoginSignup
1
3

More than 3 years have passed since last update.

【備忘録】DiscordBot① Bot作成 ~ 特定の内容に返信

Last updated at Posted at 2020-05-21

Discord Developer PortalでBotを作成する

Discordにログイン

Discord Developer PortalにアクセスしDiscordのアカウントでログイン。
image.png

Applicationタブに飛ばされる。
image.png

New Application の作成

右上の New Applicationをクリックして新規BotをDiscord側で作成する。
image.png

作成したBotの基本設定画面に飛ばされる。
image.png

画面左Botタブをクリック
画面右上Add botボタンをクリックした後yesをクリック。
image.png

Copyをクリックしてメモ帳か何かに書き写しておく。
※ほかの人にこの文字列が渡るとbotを導入したサーバーを荒らされる可能性があるため漏れないように。
 漏れたと思ったときはRegenerateをクリックしてトークンを再生成するなどして対応すること。

画面左OAth2タブをクリック
SCOPES枠内真ん中あたりにあるbotにチェックを入れる。
image.png

下にスクロールしてBot PermissionsでBotに与える権限を選ぶ。
自分で作ったテストサーバーに導入して遊ぶ分にはAdministrator(管理者権限)でかまわない。
image.png

権限を与えた後はSCOPE枠内の下に出てきたリンクをコピーしてアクセスする。
アクセスしたらBOTを追加する場所を選択しはいを押す。
また、管理者権限を与えている場合管理者権限を与えてよいか確認メッセージが出る。
image.png

PythonでBotの内容を書く

環境

Windows10 x64
Python3.7.7 x64
discord.py 1.2.5

Pythonを導入

Python公式のDownloadsから対応バージョンのpythonをダウンロード。
image.png
Filesの内環境に合ったものをダウンロード。
今回はWin x64なのでWindows x86-64 executable installer

image.png

インストール画面はとりあえずOK連打

エディタを導入

今回はVisualStudioCodeを使用。
Downloadからバージョンにあったものを使用。

discord.pyをPIPで入れる

コマンドラインにて下記コマンドを実行
pip install discord.py

動かす

下記コードをDiscordBot.pyで保存し実行(async/await版)

# -*- coding: utf-8 -*-

# ライブラリのインポート
import discord
import asyncio

TOKEN = 'ここにコピーしたトークンを貼り付ける'
client = discord.Client()

# ボットの起動時に実行されるイベントハンドラを定義
@client.event
async def on_ready():
    print('Bot Launched')

# メッセージの送信時に実行されるイベントハンドラを定義
@client.event
async def on_message(message):
    if message.author.bot:
        pass
    elif message.content.startswith('こんにちは!'):
        send_message = f'{message.author.mention}さん、こんにちは!'
        await message.channel.send(send_message)

#ボットを実行
client.run(TOKEN)
#ここより下に書かれた処理はボットが停止するまで実行されない

コマンドラインで下記コマンドをファイルのある場所で実行
python DiscordBot.py

動作の様子
image.png

1
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3