変数とデータ

環境変数(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
保護シークレット指定で暗号化保存できる暗号化されず、ダッシュボードで値が見える

永続変数の詳細は永続変数をご覧ください。

最終更新:

目次