あまり前置きが長くなっても飽きてしまうので、そろそろ手を動かし始めたいと思います。ここでようやく最初のコードが出てきますが、まずはデプロイ先の環境で動作確認をしてみましょう。なにごともまずは動作確認からです。足元を踏み固めて基礎を作ることはとても大切です。

このHow-Toではボットを作成するためのプラットフォームとしてReplitを使い、そこでJavaScriptのコードを書いていくので、まずはユーザー登録をしましょう。英語のサイトですが、それほど苦労せずユーザー登録ができるはずです。

JavaScriptって何?

Discordのボットが作れるという話だけを聞いて、勢いだけでここに来てしまった人もいるかもしれません。ここでは逐一JavaScriptのコードの内容について解説はしないので、最低限のJavaScriptのコードを読み書きできる必要はあります。

お金をかけられるのなら書籍で体系的に学ぶこともできますし、ウェブ上にも文献があります。無料で講習を受けられるプログラミング講座などもあるので自分に合ったものを選ぶとよいでしょう。私のおすすめは以下のふたつです。

「そうは言ってもなんかいい方法あるでしょ?」とか「自分は手軽にボットを作りたいんですけど」と思うかもしれません。ですが、自分の人生を思い返してみてください。「学問に王道なし」と言うように、多少なりとも泥臭く勉強や努力をしなければなし得ないのです。

JavaScriptのコーディングスタイル

JavaScriptにはさまざまなコーディングスタイルがありますが、その中でも興味深いもののひとつに文末セミコロンの有無があります。C言語の影響を受けているプログラミング言語では文の終わりに ; を配置することが必要とされていますが、JavaScriptでは自動セミコロン挿入と呼ばれる機能が存在し、文法的に省略できる文脈であれば省略できます。

この連載でもJavaScriptのコードにはセミコロンを付けていませんが、それはミスではなく意図的なものです。

私はPythonでやりたいんですが?

そういう人もいるでしょう。discord.pyを使えばPythonでも同じように開発できますが、言語が違うので礼儀作法も変わります。学習するにあたっては公式リファレンスで十分ですが、プログラミング自体が始めての方には、以下の書籍がおすすめです。

通常Pythonではあまり使われないasyncioの知識も必要になるので抑えておくといいでしょう。

Discordでボットを登録する

開発者ページでボットを作成する

Discordのボットを作るには、Discordの開発者ページでボット情報を登録する必要があります。開発者向けページにアクセスし、はじめようのボタンをクリックすると、アプリケーション一覧の画面が表示されます。

New Applicationを選択するとダイアログが表示されるので、ボットの名前と利用規約への同意をしてCreateをクリックします。すぐにボット情報が登録されるので、General Informationの項目でApplication IDとPublic Keyの項目を控えておきます。次にBotの項目でReset Tokenボタンをクリックしてボットトークンを払い出します。すると新しいボット用のトークンが生成されるので、これも控えておきます。

ボットトークンの取扱いには注意してください

これらの情報が万が一流出すると、他人がボットを操作することができてしまいます。不特定多数がアクセスできる場所には絶対に書き込まないでください。

ボットをサーバーに招待する

Installationの項目にInstall Linkがあり以下のようなURLが表示されています。これがあなたのボットのインストールURLです(以下のURLはサンプルです)。

https://discord.com/oauth2/authorize?client_id=0123456789

このURLにブラウザからアクセスすると、ボットを導入するための画面が表示されるので、サーバーに追加からインストール先のサーバーを選択します。

自分の管理下にあるサーバーならどこにでもインストールできますが、開発でテストメッセージが飛び交うことを想定すると、自分のプライベートなサーバーで試した方が無難です。

ボットにインストールしてもサーバー上ではなにも起きていないように見えます。それもそのはず、まだボットを動かすためのコードをひとつも書いていないからです。これからそれを書いていきましょう。

ボットの名前を変える

ボットの名前は最初「bot1373638205999681638」のような無骨なものになっていますが、Discord側で変更できます。Discordのアプリケーションの設定画面のBotの項目にUsernameの欄があるので、好きな名前をつけてあげましょう。

第2回 Replitでコードを書く