このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。

背景
DifyにおけるOAuthには、開発者が理解し設計すべき2つの別々のフローがあります。フロー1: OAuthクライアントセットアップ(管理者/開発者フロー)
Dify Cloudでは、Difyチームが人気のあるツールプラグイン用のOAuthアプリを作成し、OAuthクライアントをセットアップするため、ユーザーは自分で設定する手間が省けます。セルフホストDifyインスタンスの管理者は、このセットアップフローを実行する必要があります。
Google Cloud プロジェクトを作成する
Google Cloud プロジェクトを作成する
- Google Cloud Console にアクセスし、新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
- 必要な API(例:Gmail API)を有効にします。
OAuth 同意画面を設定する
OAuth 同意画面を設定する
- APIs & Services > OAuth consent screen に移動します。
- 公開プラグインの場合は External ユーザータイプを選択します。
- アプリケーション名、ユーザーサポートメール、開発者連絡先を入力します。
- 必要に応じて承認済みドメインを追加します。
- テストの場合:Test users セクションでテストユーザーを追加します。
OAuth 2.0 資格情報を作成する
OAuth 2.0 資格情報を作成する
- APIs & Services > Credentials に移動します。
- Create Credentials > OAuth 2.0 Client IDs をクリックします。
- Web application タイプを選択します。
client_idとclient_secretが生成されます。これらを資格情報として保存します。
Dify に資格情報を入力する
Dify に資格情報を入力する
OAuth クライアント設定ポップアップに 
client_id と client_secret を入力して、ツールプロバイダーをクライアントとしてセットアップします。
リダイレクトURIを承認する
リダイレクトURIを承認する
Difyが生成したリダイレクトURIをGoogle OAuthクライアントのページに登録します:

DifyはセルフホストDifyの場合、
redirect_uriをOAuthクライアント設定ポップアップに表示します。通常、次の形式に従います:your-dify-domainはCONSOLE_WEB_URLと一致する必要があります。フロー2: ユーザー認可(Difyユーザーフロー)
OAuthクライアントを設定した後、個々のDifyユーザーは、プラグインが自分の個人アカウントにアクセスすることを認可できるようになります。
実装
1. プロバイダーマニフェストでOAuthスキーマを定義する
プロバイダーマニフェストのoauth_schema セクションは、プラグインの OAuth 設定に必要な資格情報と、OAuth フローが生成するものを Dify に伝えます。OAuth をセットアップするには、2 つのスキーマが必要です:
client_schema
OAuthクライアントセットアップの入力を定義します:gmail.yaml
url フィールドはサードパーティサービスのヘルプドキュメントにリンクし、管理者や開発者がセットアップ時に参照できるようにします。credentials_schema
ユーザー認可フローが生成するものを指定します(Difyがこれらを自動的に管理します):OAuth と API キーの両方の認証オプションを提供するには、
oauth_schema と credentials_for_provider を一緒に含めてください。2. ツールプロバイダーで必要なOAuthメソッドを完成させる
ToolProviderを実装している場所に、以下のインポートを追加します:
ToolProviderクラスは、これら3つのOAuthメソッドを実装する必要があります(例としてGmailProviderを使用):
3. ツールでトークンにアクセスする
Tool 実装で OAuth 資格情報を使用して、認証済みの API 呼び出しを行います:
self.runtime.credentialsは現在のユーザーのトークンを自動的に提供します。Difyはリフレッシュを自動的に処理します。
OAuth と API_KEY 認証の両方をサポートするプラグインの場合、self.runtime.credential_type を使用して 2 つの認証タイプを区別できます。
4. 正しいバージョンを指定する
OAuth には最新の SDK と Dify バージョンが必要です。requirements.txt でプラグイン SDK を固定します:
manifest.yamlに、最小Difyバージョンを追加します: