メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Discordエンタイトルメントは、支払い顧客をサーバーに追加し(オプションで役割を割り当て)、サブスクリプションがアクティブになるか一括購入がクリアされるとすぐに追加します。キャンセル、払い戻し、プラン変更により役割は自動的に取り消されます。

配信される内容

  • 顧客は受け取りメールやカスタマーポータルのOAuthリンクを通してDiscordアカウントを接続します。
  • 認証すると、Dodo Paymentsはあなたのサーバーに追加し(または既存のメンバーシップを見つけ)設定した役割を割り当てます。
  • 特定の役割を選ばなかった場合、サーバーのメンバーシップのみが付与されます。
この統合は有料コミュニティ、サポーターパーク、階層型アクセスチャンネルに最適です。

Discordを接続する

1

Open Entitlements

Dodo Paymentsダッシュボードで、Entitlements に移動し、+ をクリックして新しいエンタイトルメントを開始します。
2

Pick Discord

Discord Access を統合として選択します。まだDiscordをビジネスに接続していない場合は、Connect Discord を促されます。
New entitlement panel prompting the merchant to connect Discord
クリックすると、新しいタブでDiscordが開きます。ログインし、ゲートしたいサーバーを選び、ボットの権限(Manage Roles, Kick Members, Create Invite)をそのサーバーで確認します。
Discord OAuth screen asking which server to add the Dodo Payments bot toDiscord bot permission confirmation screen
Discordがリダイレクトした後、サーバーが接続されていることを確認できます。
Discord Access connected successfully confirmation page
3

Pick a server and role

ダッシュボードに戻ったら、接続した サーバー(ギルド)を選びます。配信時に割り当てる役割を任意に選択するか、空白のままでサーバーのメンバーシップのみを付与します。エンタイトルメントに名前を付けて、Create Entitlementをクリックします。
New Entitlement - Discord Access form with connected server, server picker, role dropdown, and name field
4

Save the entitlement

エンタイトルメントを保存します。これで、製品に添付することが可能です。

顧客フロー

  1. 顧客がチェックアウトを完了します。
  2. Dodo Paymentsがpendingステータスで、Discordを指すoauth_urlを作成します。
  3. 顧客には「Join the Discord」ボタン(OAuthリンク)を含むメールが送信されます。このリンクはカスタマーポータルにも表示されます。
  4. 顧客が認証すると、ボットがサーバーに追加し、設定された役割を割り当てます。グラントはdeliveredに移動します。
  5. サブスクリプションがキャンセル、停止、または終了するか、商人が手動で取り消すと、ボットは役割を削除し、グラントはrevokedに移動します。
Dodo Paymentsボットの役割が付与する役割の上に配置されていることを確認してください。Discordは自身より高いランクの役割を割り当てることを防ぎます。

必須設定

フィールド必須説明
guild_idはいDiscordサーバーID。ダッシュボードのピッカーが自動的に入力します。
role_idいいえ配信時に割り当てる役割。サーバーメンバーシップのみのアクセスの場合は省略します。

APIを使用した作成

import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
  environment: 'test_mode',
});

const entitlement = await client.entitlements.create({
  name: 'Patrons Discord Role',
  integration_type: 'discord',
  integration_config: {
    guild_id: '123456789012345678',
    role_id: '987654321098765432',
  },
});

Webhooks

Discordのグラントを追跡するために、entitlement_grant.* webhook eventsを購読します:
  • entitlement_grant.createdstatus: "pending"および顧客が認可するためのoauth_urlで発火します。
  • 役割が割り当てられたときにentitlement_grant.deliveredが発火します。
  • 役割が削除されたときにentitlement_grant.revokedが発火します。

トラブルシューティング

顧客がOAuthフローを完了するまで、グラントはpendingにあります。エンタイトルメントのグラントリストをチェックし、OAuthリンクをクリックしたかどうかを確認してください。必要なら配送メールを再送します。
Dodo Paymentsボットがサーバーに残り、Manage Rolesの権限を持ち、割り当てられている役割の上に配置されていることを確認してください。エンタイトルメントを再保存すると、検証が再実行されます。
Discordは役割の削除を即座に伝播しますが、顧客のローカルDiscordクライアントがキャッシュすることがあります。再接続またはリフレッシュが必要です。サーバー側の状態は正しいです。
Last modified on May 14, 2026