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

ユーザーメタデータ

ユーザーメタデータを作成する

次のプロファイル詳細を使ってユーザーを作成するには、以下のようにします。
{
    "email": "jane.doe@example.com",
    "user_metadata": {
        "hobby": "surfing"
    },
    "app_metadata": {
        "plan": "full"
    }
}
/post_usersエンドポイントに対して次のPOST呼び出しを実行し、ユーザーの作成とプロパティ値の設定を行います。
curl --request POST \
  --url 'https://{yourDomain}/api/v2/users' \
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"email": "jane.doe@example.com", "user_metadata": {"hobby": "surfing"}, "app_metadata": {"plan": "full"}}'

ユーザーメタデータを更新する

Management API /patch_users_by_idエンドポイントに対してPATCH呼び出しを実行することで、ユーザーのメタデータを更新できます。 次のメタデータの値を使ってユーザーを作成したと仮定します。
{
    "email": "jane.doe@example.com",
    "user_metadata": {
        "hobby": "surfing"
    },
    "app_metadata": {
        "plan": "full"
    }
}
user_metadataを更新し、ユーザーの自宅住所を第2レベルのプロパティとして追加するには、以下のようにします。
{
    "addresses": {
        "home": "123 Main Street, Anytown, ST 12345"
    }
}
次のPATCH呼び出しを実行します。
curl --request PATCH \
  --url 'https://{yourDomain}/api/v2/users/user_id' \
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"user_metadata": {"addresses": {"home": "123 Main Street, Anytown, ST 12345"}}}'
ユーザーのプロファイルは以下のように表示されるようになります。
{
    "email": "jane.doe@example.com",
    "user_metadata": {
        "hobby": "surfing",
        "addresses": {
            "home": "123 Main Street, Anytown, ST 12345"
        }
    },
    "app_metadata": {
        "plan": "full"
    }
}
PATCH呼び出しを送信し、そのプロパティ値をnull(例:{user_metadata: {color: null}})に設定した場合、データベースからそのプロパティ/値が削除 されます。また、メタデータ自体に空のオブジェクトをパッチすると、メタデータが完全に削除されます。

ユーザーメタデータをマージする

プロジェクトにマージされるのはルートレベルのプロパティのみです。それよりも低いレベルのプロパティはすべて置き換えられます。 たとえば、ユーザーの勤務先住所を追加の内部プロパティとして追加するには、addressesプロパティのすべてのコンテンツを含める必要があります。addressesオブジェクトはルートレベルのプロパティでないため、ユーザーを表す最終のJSONオブジェクトにマージされますが、そのサブプロパティはマージされません。
{
  "user_metadata": {
    "addresses": {
      "home": "123 Main Street, Anytown, ST 12345",
      "work": "100 Industrial Way, Anytown, ST 12345"
    }
  }
}
したがって、APIに対するPATCH呼び出しは、次のようになります。
curl --request PATCH \
  --url 'https://{yourDomain}/api/v2/users/user_id' \
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"user_metadata": {"addresses": {"home": "123 Main Street, Anytown, ST 12345", "work": "100 Industrial Way, Anytown, ST 12345"}}}'

ユーザーメタデータを削除する

user_metadataは削除することができます。
{
  "user_metadata": {}
}

アプリメタデータ

空のオブジェクトを使ったパッチを適用すると、メタデータが完全に削除されます。たとえば、この本文を送信すると、app_metadata内のデータがすべて削除されます。
{
  "app_metadata": {}
}

クライアントメタデータ

クライアントメタデータを使ってアプリケーションを作成する

clientMetadataオブジェクトは、POST /api/v2/アプリケーションのエンドポイントを使ってアプリケーションを新規作成するときに含めることができます。

クライアントメタデータを読み取る

クライアントメタデータは、GET /api/v2/clientsエンドポイントとGET /api/v2/client/{id}エンドポイントへの応答に含まれます。

クライアントメタデータを更新する

クライアントメタデータは、PATCH /api/v2/clients/{id}エンドポイントを使って更新し、アプリケーションオブジェクトにclientMetadata propertyを提供することができます。このプロパティは、変更したメタデータを含んだオブジェクトで構成される値を持っています。 更新前のアプリケーション:
{
  ...
  "name": "myclient",
  "client_metadata": {
    "mycolor": "red",
    "myflavor": "grape"
  }
  ...
}
要求:PATCH /api/v2/client/myclientid123(本文を含む):
{ "client_metadata": { "mycolor": "blue" } }
更新後のアプリケーション:
{
  "name": "myclient",
  "client_metadata": {
    "mycolor": "blue",
    "myflavor": "grape"
  }
  ...
}

クライアントメタデータと値を削除する

クライアントメタデータキーを削除するには、上記の「app_metadataを更新する」で説明されたように、PATCHを発行しますが、キー値ににはnullを指定します。この動作は、PATCH/api/v2/users/エンドポイントのuser_metadataプロパティとapp_metadataプロパティの動作に一致します。

もっと詳しく

I