3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クリスマスまでにPythonを使ってDiscordのBOTを作るAdvent Calendar 2022

Day 7

【7日目】Discord APIってなんぞや【PythonでDiscordBOTを作ろう!】

Last updated at Posted at 2022-12-06

Discord API?

おいしそうですね。

APIとは?

APIとは、Application Programming Interfaceの略で、外部から何か特定のサービスを使用したりすることが出来ます。
うーん難しいですね...

例えば、TwitterにはTwitterAPIというAPIがあります。
本来、Twitterへのツイートは公式のTwitterアプリやページからしかできません。
しかし、TwitterAPIというものを使用することで、ちょっとプログラムを書けば、公式アプリ以外からツイートとかが出来たりします。
こんな感じです。感覚で理解してください。

Discordにも同様にDiscordAPIというものが存在します。

  1. 最初にWebSocketで接続する
  2. DiscordからHelloが送られる
  3. DiscordにWebSocketでIdentifyを送る(BOTの証明?)
  4. メッセージを送信したいなら専用のURLにHTTPリクエストを送る
  5. BOTがメッセージを受信するとWebSocketで送信される
  6. WebSocketで定期的に送られてくる「HeartBeat」にはWebSocketで応えなければならない

というような感じの流れでやります。
もちろん、こんなのを全部手動でやっていったら流石にクリスマスまでには間に合いません。

ということで、主要なAPI×主要な言語には「ラッパー」というものが存在します。

ラッパー。

image.png

違います。
「wrap」(包む)+「er」で、ラッパーです。
「ゥラッパー」とでも発音するのが正しいのでしょうか?

ラッパーを使うと、難しいことをあんまり考えずにAPIを使用することが出来ます。

DiscordAPIとPythonにも色々なラッパーがあります。
Discord.pyとかPycordとかnextcordとか...
今回は、私の勝手ですがnextcordを使います。
もちろん本来はどれを使ってもいいと思います。
が、気分的に...ね?
どのラッパーを使ってもほとんど変わりませんが、多少変わってくる部分はあると思うので、少なくともこのシリーズではnextcordと明言させてもらいます。

では、さっそくラッパーをインストールしていきましょう。
Pythonはモジュールをインストールすることで使用することが出来ます。

$ pip install nextcord
# または
$ python -m pip install nextcord

こうすることで、Pythonにnextcordをインストールすることが出来ます。
他にも、pip install XXXというような感じで指定すれば色々なモジュールをインストールすることが出来ます。

終わったら、ちゃんとインストールが成功しているか対話モードで試してみましょう。

$ python
Python 3.10.0 (default, Dec 11 2021, 16:18:22) [GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import nextcord
>>> nextcord.__version__
'2.1.0'
>>>

こんな風にちゃんとバージョン情報が表示されたら成功です。
ModuleNotFoundError: No module named 'nextcord'と表示された場合はモジュールのインストールに失敗しています。
もう一回インストールを試してみたりしてください。
(もし、discord.pyやpycordを以前にインストールしている場合は、正常に動作しない場合がありますので、出来ることならアンインストールしておくことをお勧めします。)

以降も、コードを書いていくうえで必要だなーと思うモジュールについては適時書いて、インストールを促していきます。
記入漏れもある場合がありますが、その場合はご自身でインストールしていただければ嬉しいです。

インストール完了!

さて、これでインストールまでは完了しました。
ついに次回からBOTを起動させてみたいと思います!!!
楽しみですね!!!!

とりあえず今日はお休みしましょう!

というわけで、今日の記事はここまでです。
もしよろしければ記事へのいいねをして、次回記事をお楽しみに!

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?