2022年版 DiscordのBotを自作する方法 第1回 導入編【Python】【pycord】

今回のテーマは、DiscordのBotを作成する方法です。
少し長くなってしまうので、機能ごとに数回に分けて紹介します。 最近ではチャットツールのDiscordが主流になってきており、Botを導入しているサーバーを見かける事が多くなりました。しかし、無料で招待できるBotは制限があることが多く、満足のいくBotというのはなかなかありません。

 Discordでは簡単に自分のサーバーを作成することができるため、自分のサーバー専用のBotを作成できると大変便利です。

 自分好みのDiscordBotを作成してDiscordライフを豊かにしましょう!

目次

Botの設定をして、コードを描いて返信をさせてみよう!

DiscordのサイトからBotアプリケーションの生成を行う。

Developers portal」からBotのアプリケーション設定を行います。

Discord Developer Portal
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.

アカウントは、専用アカウントでも普段利用するアカウントでも構いません。

ログインすると以下のような画面が表示されますので、右上の「New Application」をクリックします。

 Botのアプリケーション名を決めて下さい。

名称に「Discord」を含めるとあとでエラーになりますので、Discordだけは避けて下さい。

Google翻訳
あなたはゲーム開発者ですか?すでにデータベースに登録されている可能性があります。詳細については、当社の開発者サポートに連絡し、あなたのゲームを請求してください

次に、左の「SETTINGS」からBotを選択して下さい。
すると、以下のような画面が表示されますのでAddBotをクリックして下さい。

次に「Yes,do it!」をクリックして下さい。

Google翻訳
ボットユーザーを追加することで、あなたのアプリがDiscordで目に見える命を得ることができます。しかし、このアクションは取り消すことができません! 賢明な選択です。

 これでBotが生成されました。

Botの設定をしよう!

  次に、生成されたBotの設定を行います。

SETTINGSから「Oath2」の「URL Generator」を選択します。

 SCOPESの「bot」にチェックを入れます。

選択すると「BOT PERMISSIONS」が表示されますので、「Administrator」にチェックを入れます。

そして一番下の「GENERATED URL」の横にあるCOPYを押します。

 これをブラウザで開くと、BOTををサーバーに招待する画面になりますので、
招待したいサーバーへ招待しましょう。

これで、基本的なBotの設定は完了です。
次からはコーディングに入ります。

pycordを使ってBotのコーディングをしよう!

 今回は、DiscordのBot用ライブラリである「pycord」を利用します。

Discord用のPythonライブラリにはいくつか種類があるのですが、今回紹介している「pycord」が、2022年2月現在では一番主流になっています。

ライブラリをインストールする

pipでpycordをインストールします。

py -3 -m pip install -U py-cord[voice]

コーディングして実行してみよう!

導入として、「$hello」と入力すると、返事をするBotをコーディングします。

import discord

token = '自分のbotのトークン'
client = discord.Client()

#■ログインの確認
@client.event
async def on_ready():
    print(f'We have logged in as {client.user}')

#■非同期処理
@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')

#■自分のbotのトークンを設定する
#Botが起動します。
client.run(token)

最初に出てくる、

token = '自分のbotのトークン'

 にDiscordで発行したらトークンを設定する必要があります。

このトークンは人に教えないで下さい!Botが乗っ取られます。

トークンの取得は以下の手順で取得します。
まずは先程、Botの設定を行ったサイトに戻ります。
Developers portal
1. 左のメニューのSETTINGSからBotを選択します。
2. Copyを押すとBotのトークンを取得できます。
3. コピーしたトークンを、上記のソースの’自分のbotのトークン’に貼り付けます。

 トークンを貼り付けたら試しにプログラムを実行してみましょう!

 上記のようなメッセージが表示されたら成功です!
Botが起動状態になります。

 実行した状態で、Discordを確認してみましょう。
参加させたBotがログイン状態になっているはずです。

チャットに「$hello」と入力してみて下さい。

Hello!と返ってきました!

 これで導入は完了です。では、コードの中身を見ていきましょう!

コードの説明

イベントハンドラを見てみよう!

#■ログインの確認
@client.event
async def on_ready():
    print(f'We have logged in as {client.user}')

イベントハンドラは、discord上で発生するイベントごとに処理を分ける関数になります。
on_ready()は、クライアントがDiscordから受信したデータの準備を完了した際に呼び出されます。

 Discordのイベントハンドラは色々用意されていますが、今回は導入編なのでまた次の機会に消化いします。

#■非同期処理
@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')

 「on_message(message)」メソッドは、メッセージが作成され、送信されたときに呼び出されます。今回の例では「$hello」を受け取った後に、それが投稿されたチャンネルに対してBotが「Hello!」を返すプログラムになります。

 無限ループ回避のために、Botの発言の場合は無視するようになっています。

client.run(token)

設定したトークンを起動させます。

まとめ

 今回は、DiscordのBotを作成するための導入編を紹介しました!

  1. DiscordのBotの設定を行いました。
  2. pipからpycordをインストールを行いました。
  3. Botのトークンを取得し、コードに組み込みました。
  4. コード実行を実行し、Botの起動を確認しました。
  5. コードの説明を行いました。

 この章では、設定からコードの実行までを紹介しました。

 DiscordのBotの命令は基本的に簡単に利用できるものが多いので、次の章も身構えずに気軽に挑んでみて下さい!

 今回の記事が、皆さんの技術力向上に繋がれば嬉しいです。
以上、おつかれさまでした!

あわせて読みたい
【2022年版】 Discordボットに3つの機能を実装してみよう! 第2回 実装編【画像の投稿】【ボイスチャ...   今回のテーマは、「実装編」ということで、3つの機能を実装します。  ボットの機能として、「画像の投稿(別ファイルも)」「ボイスチャンネルの出入り通知」「新...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次