変数とデータ
環境変数(Bot 単位の設定値・秘密の保管庫)
「環境変数」は、API キー・トークン・通知先のチャンネル ID・連携先 URL など、Bot で使う値に名前を付けて 1 か所で保管する機能です。Bot ごとに設定し、ほかの Bot には影響しません。登録した値は、カスタムコマンドの中から {env.NAME} の形で読み出せます。
シークレットと設定値
変数ごとに、保存方法を シークレット か 設定値 から選びます。追加時の「シークレットとして暗号化保存する」(初期値はオン)で決まります。
| 保護レベル | 保存方法 | 値の表示・コピー |
|---|---|---|
| シークレット | サーバー側で暗号化して保存 | できません。「設定済み」であることだけが分かります |
| 設定値 | そのままの文字列で保存 | できます |
- シークレットで保存した値は 二度と再表示できません。必要な場合は保存前に手元に控えてください。
- 設定値の変数は「シークレット化」で後からシークレットにできますが、設定値に戻すことはできません。
- 値を確認したい場合や設定値に戻したい場合は、変数を削除して作り直すしかありません。
- シークレットの値を更新すると、以前の値は破棄され復元できません。
シークレット変数の編集画面では、値の欄が空の状態で開きます。値を入力しなければ、保存しても値は書き換わりません。
各変数の「履歴をみる」では、作成・値の更新・シークレット化・削除と、Bot が最後に値を読み出した記録(「参照」)を確認できます。
キー名のルール
- 1 文字目は英字(
a–z、A–Z)、2 文字目以降は英数字またはアンダースコア(_)です。 - 大文字・小文字はどちらも使え、自動で変換されません。参照するときはキー名と完全に一致させてください。
- 64 文字以内です。
- 同じ Bot 内で同名の変数は作れません。
env(大文字・小文字を問わず)は予約語のため使えません。
カスタムコマンドから参照する
コマンドビルダーの入力欄に {env.NAME}(NAME は登録した変数名)と書くと、その値に置き換わります。たとえば API リクエストノードのヘッダー値に {env.STRIPE_API_KEY} と書けます。シークレット変数も書き方は同じで、実行時に Bot 側で復号されます。参照式の書き方全般は変数と式の使い方をご覧ください。
シークレット変数を「APIリクエストを行う」以外のノード(メッセージ送信・埋め込み・ログなど)で参照すると、復号された値が Discord のチャットや実行ログに平文で残るおそれがあります。画面に警告が出ますが、保存は止まりません。
「APIリクエストを行う」でも、値をそのまま返す API では、応答を受け取った変数({APIリクエスト名.response} など)から漏れる可能性があります。
永続変数との使い分け
環境変数 ({env.NAME}) | 永続変数 ({BSVAR_name}) | |
|---|---|---|
| 主な用途 | 接続情報・秘密の値・ID などの設定値 | ポイント・スコアなど、コマンドの実行を通じて読み書きする値 |
| 値を変える人 | 管理者(ダッシュボードで編集) | コマンドを実行する Bot |
| 保護 | シークレット指定で暗号化保存できる | 暗号化されず、ダッシュボードで値が見える |
永続変数の詳細は永続変数をご覧ください。
最終更新: