ユーザーメタデータ
ユーザーメタデータを作成する
次のプロファイル詳細を使ってユーザーを作成するには、以下のようにします。
{
"email": "jane.doe@example.com",
"user_metadata": {
"hobby": "surfing"
},
"app_metadata": {
"plan": "full"
}
}
/post_usersエンドポイントに対して次のPOST呼び出しを実行し、ユーザーの作成とプロパティ値の設定を行います。
ユーザーメタデータを更新する
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呼び出しを実行します。
ユーザーのプロファイルは以下のように表示されるようになります。
{
"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呼び出しは、次のようになります。
ユーザーメタデータを削除する
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プロパティの動作に一致します。
もっと詳しく