1
1

Discordボットの設定: アカウント作成とキー管理 🤖🔑

Last updated at Posted at 2023-11-16

Discord ボット開発の実践的な側面に踏み込みます。
このチャプターでは、Discord ボットアカウントの作成とキーの安全な管理方法を説明します。
これらのキーを Skeet ベースのサーバーレス環境に組み込むことで、セキュアかつ効率的なボットの展開を実現します。

Discord ボットアカウントの作成

Discord ボットアカウントを作成するには

にアクセスし、アプリケーションを作成します。

そして General Information から

  • DISCORD_PUBKEY
  • DISCORD_APPLICATION_ID

をメモしておきます。後ほど config.ts に設定します。

次に Bot ページに移動し、Reset Token をクリックして、トークンを生成します。

  • DISCORD_TOKEN

トークンをメモしておきます。

続いて Privileged Gateway Intents を有効にします。

  • PRESENCE INTENT
  • SERVER MEMBERS INTENT
  • MESSAGE CONTENT INTENT

を有効にします。

Discort ボットをサーバーに追加する

以下の URL にアクセスし、Discord ボットをサーバーに追加します。
DISCORD_APPLICATION_ID を上記でメモした値に置き換えてください。

https://discord.com/api/oauth2/authorize?client_id=<DISCORD_APPLICATION_ID>&permissions=8&scope=bot%20applications.commands

追加するサーバーを選択し、追加ボタンをクリックします。
これで Discord ボットがサーバーに追加されました。

🗝️ Skeet プロジェクトに秘密鍵を追加する 🛡️

Skeet プロジェクトでセキュアなデータ管理を実現するため、skeet add secret コマンドを使って、重要なキーを Google Cloud の Cloud Secret Manager に安全に追加しましょう。このプロセスにより、機密情報の安全な保管とアクセス管理が可能となります。

DISCORD_TOKEN の追加

$ skeet add secret DISCORD_TOKEN
? Enter value for DISCORD_TOKEN: <YOUR-DISCORD_TOKEN>

Skeet Framework では、.env ファイルを使用せずにセキュリティを保ちます。これにより、Google Cloud の IAM の権限ベースでアクセスをコントロールし、チーム間での .env ファイルの共有の必要性を排除します。このアプローチは、プロジェクトのセキュリティを強化すると同時に、開発チームの作業効率を向上させます。

Firebase の公式ドキュメントにも記載されているように、Cloud Secret Manager を利用することで、アプリケーションの構成情報をより安全に、かつ効率的に管理することができます。

定数を config.ts に設定する

functions/skeet/lib/config.ts に以下の定数を設定します。

import { dotenv } from '@skeet-framework/utils'
dotenv.config()

const NODE_ENV = process.env.NODE_ENV || 'development'

// Discord
export const DISCORD_PUBKEY = 'Your Discord Pubkey'
export const DISCORD_APPLICATION_ID = 'Your Discord Application ID'
export const DISCORD_GUILD_ID = 'Your Discord Guild ID'

export const config = {
  NODE_ENV,
}

DISCORD_GUILD_ID は Discord サーバーのアイコンを右クリックすることで、サーバー ID を取得できます。

次の章では、設定したキーを使って、Discord ボットを実際に動かしてみましょう。

1
1
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
1
1