ユーザーメタデータ
ユーザーメタデータを作成する
次のプロファイル詳細を使ってユーザーを作成するには、以下のようにします。
{
"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
は削除することができます。
アプリメタデータ
空のオブジェクトを使ったパッチを適用すると、メタデータが完全に削除されます。たとえば、この本文を送信すると、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
プロパティの動作に一致します。
もっと詳しく