Skip to main content
Auth0 PHP SDK には Auth0\SDK\API\Management クラスがあり、Management API にアクセスして Auth0 テナントに対する操作を実行するためのメソッドが用意されています。このインターフェースを使用すると、次のような操作を簡単に実行できます。
  • ユーザーの検索と作成
  • アプリケーションの作成と更新
  • ログエントリの取得
  • Rules の管理
…そのほかにもさまざまな操作が可能です。利用可能な機能については、API リファレンス を参照してください。 認証 を使用するには、次のいずれかの方法で認証する必要があります。
  • 一時的なアクセスやテストの場合は、API トークンを手動で生成 し、.env ファイルに保存できます。
  • 継続的にアクセスする場合は、アクセスが必要になった時点で Client Credentials grant を作成して実行する必要があります。この手順の詳細は、Authentication API ページ を参照してください。
どちらの方法でも、生成されるトークンには、アプリケーションで実行する操作に必要なスコープが含まれている必要があります。アクセスしようとしているエンドポイントに必要なスコープについては、API ドキュメント を参照してください。 必要なスコープを付与するには、次の手順を実行します。
  1. APIs > Auth0 Management API > Machine to Machine Applications タブに移動します。
  2. 対象のアプリケーションを見つけて認可します。
  3. 行を展開する矢印をクリックし、必要なスコープを選択します。
これで、上記 2 つの方法のいずれかで認証し、そのトークンを使用して操作を実行できます。
// 👆 上記「前提条件」にリンクされている「はじめに」ガイドの続きです。そこで作成した index.php ファイルに追記してください。

if (isset($env['AUTH0_MANAGEMENT_API_TOKEN'])) {
    $auth0->configuration()->setManagementToken($env['AUTH0_MANAGEMENT_API_TOKEN']);
}

// SDK ($auth0) のセットアップ時に使用した設定に基づいて、`Auth0\SDK\API\Management` クラスの設定済みインスタンスを作成します。
// AUTH0_MANAGEMENT_API_TOKEN が設定されていない場合、クライアントシークレットが設定されていれば、クライアントクレデンシャル交換を自動的に実行してトークンを生成します。
$management = $auth0->management();
Management クラスでは、各エンドポイントへのアクセスがインスタンスのファクトリメソッドとして提供されます。たとえば、$management->users()Auth0\SDK\API\Management\Users のインスタンスを返し、これを使用して /users Management API エンドポイントを操作できます。

例 - メールアドレスでユーザーを検索する

このエンドポイントの詳細はこちらを参照してください。
// 👆 上記のコードの続きです。ソースコードファイルに追記してください。

$response = $management->users()->getAll(['q' => 'josh']);

// レスポンスのステータスコードは失敗を示していますか?
if ($response->getStatusCode() !== 200) {
    die("API request failed.");
}

// JSONレスポンスをPHP配列にデコードします:
$response = json_decode(response->getBody()->__toString(), true, 512, JSON_THROW_ON_ERROR);

if (! empty($response)) {
    echo '<h2>User Results</h2>';

    foreach ($response as $result) {
        printf(
            '<p><strong>%s</strong> &lt;%s&gt; - %s</p>',
            !empty($result['nickname']) ? $result['nickname'] : 'No nickname',
            !empty($result['email']) ? $result['email'] : 'No email',
            $result['user_id']
        );
    }
}

例 - すべてのクライアントを取得

このエンドポイントのドキュメントはこちらです。
// 👆 上記のコードの続きです。ソースコードファイルに追記してください。

$response = $management->clients()->getAll(['q' => 'josh']);

// レスポンスのステータスコードは失敗を示していますか?
if ($response->getStatusCode() !== 200) {
    die("API request failed.");
}

// JSONレスポンスをPHP配列にデコードします:
$response = json_decode(response->getBody()->__toString(), true, 512, JSON_THROW_ON_ERROR);

if (! empty($response)) {
    echo '<h2>Get All Clients</h2>';

    foreach ($response as $result) {
        printf(
            '<p><strong>%s</strong> - %s</p>',
            $result['name'],
            $result['client_id']
        );
    }
}

詳細情報