Apidog

オールインワン協働API開発プラットフォーム

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

Discord API使い方:できること、料金なども解説

Discordは全世界でも人気のあるコミュニケーションプラットフォームとして、多くのユーザーに利用されています。Discordのサービスを外部アプリと連携させるために、Discord APIを利用する必要があります。本文では、Discord APIができること、利用料金、及び詳細な使い方を皆さんに解説していこうと思います。

中村 拓也

中村 拓也

Updated on 11月 12, 2024

Discordは全世界でも人気のあるコミュニケーションプラットフォームとして、多くのユーザーに利用されています。Discordのサービスを外部アプリと連携させるために、Discord APIを利用する必要があります。本文では、Discord APIができること、利用料金、及び詳細な使い方を皆さんに解説していこうと思います。

Discordとは

Discordとは、ゲーマーやコミュニティ向けのボイスチャット、ビデオチャット、テキストチャットなどのコミュニケーションプラットフォームです。

Discordプラットフォーム

主な特徴は以下の通りです。

  • 無料で使用できるクロスプラットフォームアプリ(Windows、Mac、Linux、iOS、Androidなどに対応)
  • サーバー内にテキストチャンネルやボイスチャンネルを自由に作成可能
  • スクリーン共有機能、ビデオ通話機能があり、ゲームプレイの共有ができる
  • ボット機能でさまざまなカスタマイズが可能
  • コミュニティサーバーを作ってメンバーを招待できる
  • プライベートグループでの会話も可能

主にオンラインゲームのクランやコミュニティ、フレンドグループなどで利用されており、ゲームをプレイしながらのリアルタイムコミュニケーションに適しています。テキストだけでなく音声やビデオでもコミュニケーションができる点が大きな特徴です。

Discord APIについて

Discord APIとは、DiscordのプラットフォームやサービスにアクセスしてDiscordの機能を拡張したり、カスタマイズしたりするためのプログラミングインターフェースのことです。

Discord APIはREST APIとWebSocket APIの2種類があり、主要なプログラミング言語に対応しているSDKがあります。OAuth2認証を使って安全にAPIを利用できます。

つまり、Discord APIを活用することで、Discordを自分のニーズに合わせてカスタマイズしたり、外部アプリと連携させたりすることができます。

Discord APIでできること

Discord APIを使うと、以下のようなことができます。

ボットの作成・管理

  • テキストコマンドに反応するボットを作成
  • ボットにカスタム機能を追加(リアクション、メッセージ送信など)
  • ボットの挙動をプログラミングで制御

サーバー管理

  • 新しいサーバーの作成
  • サーバーの設定変更(名前、アイコン、チャンネルなど)
  • メンバーの招待・役職の割り当て
  • 特定のメンバーをBANやキックする

チャンネル管理

  • 新しいテキストチャンネル、ボイスチャンネルの作成
  • チャンネル設定の変更(トピック、権限など)
  • メッセージの送信、編集、削除

リソース管理

  • カスタム絵文字の追加・削除
  • 招待リンクの作成、管理

WebHookの利用

  • 外部アプリからDiscordにメッセージを送信

認証と認可

  • OAuth2を使ったユーザー認証
  • スコープに基づく権限設定

アクティビティの追跡

  • サーバーやチャンネルのメッセージのログ取得

Discord APIの利用料金

一般的にはDiscord APIは、外部アプリやサービスからDiscordでBotを作成したり、チャンネルを管理したりするために利用されています。そこで、Discordサービスを利用している方なら、Discord APIを完全無料で利用できます

Discordサービスを利用することができますが、有料プランのNitro BasicとNitroというサービスも提供しています。Nitroサービスを購読することで、より大きなビデオや画像をシェアしたり、カスタム絵文字やスーパーリアクションを利用したりすることができるようになります。

Discord Nitroの料金プランについて:

Nitro Benefits and Features | Discord
Enhance your Discord experience with Nitro — get custom emojis, animated avatars, larger file uploads, HD screensharing, and more.

Discord APIの使い方を完全に解説

それでは、Discord APIを利用して、自分のアプリやサービスをDiscordに連携するために、どうやって始めれば良いのでしょうか?次は。Discord APIの利用の使い方を詳しく解説していこうと思います。

ステップ⒈Discordの開発者向けページにアクセス

Discordの開発者向けページにアクセスします。ここで、Discordアカウントでログインします。まだDiscordのアカウントをお持ちでない場合、まずはサインアップする必要です。

discordへログイン

ステップ⒉Discordアプリを新規に作成

Discordの開発者ポータルサイトにログインすると、ここで「New Application」を選択して、Discord アプリを新規に作成します。

Discordアプリを新規に作成

ステップ⒊ アプリの名前をつける

ここで新規のアプリの名前を付けて続行します。

アプリの名前をつける

ステップ⒋Client IDとClient Secretを取得

左側メニューからOAuth2セクションで、Client IDとClient Secretを取得することができます。

discord client id secret oauth2

ここでredirect URLを追加する必要があります。このURLを追加しなければ、Discord APIが利用できません。ここで、追加の例として、http://localhost/discord/redirectをredirect URLに設定します。

ステップ⒌Discordアプリの認証リンクを生成

Discord APIにリクエストを送信するために、認証が必要です。OAuth2セクションで画面を下にスクロールして、「OAuth2 URL Generator」があります。

discord url generator

ここで、Scopes(APIができる操作)を設定します。例えば、認証用だったら、「identify」をチェックします。

そして、redirect URLを設定した上、生成したリンクをコピーします。このリンクをブラウザに入力して、次のような認証ページが表示されます。

Discordアプリの認証ページ

ここで「Authorize」ボタンをクリックして、認証済のURLを保存します。この認証済のURLは次のような形になっています:

http://localhost/discord/redirect?code=dVDSfa7lff41EervKcDHgelVXJdZnw

Discord APIを実装するために、上記の codeパラメータを保存する必要があります。上記のURLのサンプルでは、codeパラメータの値が dVDSfa7lff41EervKcDHgelVXJdZnwになります。このパラメータは、Discord APIのアクセストークンを取得するために利用される必要があります。

ステップ⒍Discord APIのアクセストークンを取得

Discord APIのアクセストークンを取得するために、次のAPIエンドポイントにリクエストを送信して、上記で取得したデータを渡す必要があります。

  • https://discord.com/api/oauth2/token

ここで最も使いかやすいAPI管理ツールのApidogを利用して、簡単にデータをDiscord認証用エンドポイントに渡し、簡単にアクセストークンを取得できます。次のcurlコマンドをApidogにインポートして、すぐにリクエスト情報を導入して、直感的なUIでAPIをテストしたり、管理したりすることができます。

button
ApidogからDiscord認証を
curl -i -X POST \
   -H "Content-Type:application/x-www-form-urlencoded" \
   -d "client_id=${CLIENT_ID}" \
   -d "client_secret=${CLIENT_SECRET}" \
   -d "grant_type=authorization_code" \
   -d "code=${CODE}" \
   -d "redirect_uri=${REDIRECT_URL}" \
 'https://discordapp.com/api/oauth2/token'

HTTPメソッド: POST | Content-type: x-www-form-urlencoded

  • client_id: "ステップ4で取得したClient ID"
  • client_secret: "ステップ4で取得したClient Secret"
  • grant_type: "authorization_code"
  • code: "ステップ5で取得したCodeパラメータ"
  • redirect_uri: "http://localhost/discord/redirect"

ここで正しいデータが含まれるリクエストを送信すると、次のようなアクセストークンを取得することができます。

Apidogで取得したアクセストークン

Apidogで便利にDiscord APIを管理&テスト

上記のガイドを参照して、Discord APIのアクセストークンを取得すると、このアクセストークンを利用することで、Discord APIを利用してDiscordサービスに連携して、外部のアプリからさまざまな操作を行うことができるようになります。具体的に実現できる操作は、次のページからDiscord API仕様書をご確認ください。

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.

次のように、ユーザーIDの取得及びメンバーの削除といった2つの操作を行うには、cURLコマンドを使ってそれを簡単にApidogにインポートできます。そして、直感的なUIでAPIをテストしたり、リクエストを送信したりすることができます。また、Apidogでリクエストを送信してレスポンスを取得すると、リクエストを保存することもできます。

button
curlでリクエストをApidogにインポート

ユーザーIDの取得

curl -i -X GET \
   -H "Authorization:Bearer ${ACCESS_TOKEN}" \
 'https://discordapp.com/api/users/@me'

メンバーを削除

curl -i -X DELETE \
   -H "Authorization:Bot ${BOT_TOKEN}" \
 'https://discordapp.com/api/guilds/${GUILD_ID}/members/${USER_ID}'

というように、Apidogというツールを使えば、Discord APIをはじめ、自社が利用する他のAPIも一元的に管理できるようですね。APIの結合テストができるのは便利な機能です。

結合テストと一元管理

APIを利用してサードパーティのサービスやプラットフォームと自社システムを連携させる場合、APIの動作確認やテストは非常に重要です。Apidogのようなツールで一元的にAPI管理し、UIからリクエストを送ってレスポンスを確認できれば、開発が効率化されると考えられます。

button

まとめ

本記事では、Discordの人気コミュニケーションプラットフォームとその外部アプリ連携のためのDiscord APIについて詳しく解説しました。Discord APIを利用することで、テキストコマンドに反応するボットの作成、サーバー/チャンネルの管理、メッセージの送受信、カスタム絵文字の追加など、さまざまな機能をプログラミングでカスタマイズできます。一般的にDiscordサービスを利用している場合、Discord APIは完全無料で利用できます。

Discord APIを使い始めるには、Discord開発者ポータルでアプリを作成し、Client ID/Secretを取得する必要があります。OAuth2認証を経て、アクセストークンを取得できます。Apidogのようなツールを活用すれば、DiscordAPIへのリクエスト送信、レスポンスの確認、APIの一元管理などが直感的にできます。

APIを介してサードパーティサービスと自社システムを連携させることで、より価値の高いサービスを提供できます。Discordのようなプラットフォームと連携するために、Discord APIの活用は有効な選択肢になるでしょう。APIの動作確認や結合テストにApidogなどの専用ツールを使えば、開発がより効率化されます。

APIテスト効率化:ApidogでのJSONレスポンス管理法チュートリアル

APIテスト効率化:ApidogでのJSONレスポンス管理法

この記事では、ApidogでJSONレスポンスからアサーション設定、変数抽出、JSONパスのコピー方法を解説しました。APIテストの自動化と効率的なレスポンス検証が簡単になり、データの再利用も可能です。Apidogを使い、API機能を確認しましょう。

中村 拓也

11月 20, 2024

ApidogとAlgolia統合で実現する効率的なドキュメント検索チュートリアル

ApidogとAlgolia統合で実現する効率的なドキュメント検索

本記事は、AlgoliaをApidogと統合し、APIドキュメントの検索機能を改善する方法を紹介します。最適な検索設定を維持しながら、情報アクセスの迅速さと効率性を向上させ、ユーザー体験を向上させます。

中村 拓也

11月 19, 2024

Apidogで始める!IT技術者のためのテスト自動化完全ガイドチュートリアル

Apidogで始める!IT技術者のためのテスト自動化完全ガイド

Apidogを使用することで、テストエンジニアは作業効率と品質を大幅に向上させることができます。単体テストからパフォーマンステスト、CI/CD、定期的なタスクまで、ApidogはITプログラマーや技術愛好者のために自動化テストのベストプラクティスを提供します。

中村 拓也

11月 7, 2024