跳到正文
Indiana
控制台
文档
章节目录 / 更新客户资料

更新客户资料

POST/api/v1/customers/update

按 revision 校验并更新资料。requestId 用于安全重试;attributes 更新属性,removeAttributes 删除指定键,tagChanges 增减标签。

SDK 0.0.1更新于

发起请求

按 revision 校验并更新资料。requestId 用于安全重试;attributes 更新属性,removeAttributes 删除指定键,tagChanges 增减标签。

调用凭据
仅服务端 API Key。由可信后端调用。
所需权限
customers:write
base URL 和 App ID 来自 SDK 接入页。示例使用占位值,不会执行请求。服务端 Key 不可放入浏览器。
request.shShell
curl -X POST "$GROOVE_BASE_URL/api/v1/customers/update" \  -H "Authorization: Bearer $GROOVE_SECRET_KEY" \  -H "X-Groove-Project: $GROOVE_PROJECT_ID" \  -H "X-Groove-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "lookup": {    "type": "id",    "value": "00000000-0000-4000-8000-000000000001"  },  "revision": 0,  "requestId": "00000000-0000-4000-8000-000000000001",  "patch": {    "name": "Alex",    "attributes": {      "source": "website"    }  }}'

响应选项卡列出字段类型,不是响应示例;实际值由客户状态决定。

请求参数

JSON 请求体

lookupobject | object必填

用 type 指定 id 或 externalUserId,再用 value 提供对应值。

展开子字段
type"id" | "externalUserId"必填

本次操作的 type 值,类型和约束见字段标注。

valueuuid | string必填

本次操作的 value 值,类型和约束见字段标注。

revisioninteger必填

读取资料时返回的版本号;更新使用它检测并发修改。

min: 0 · max: 9007199254740991

requestIduuid必填

你的业务请求 UUID;同一次操作重试复用,新的操作生成新值。

patchobject必填

只提交需要修改的资料字段。attributes 保存 JSON 属性;removeAttributes 删除键,tagChanges 增减标签。

展开子字段
namestring可选

客户或对象的展示名称,不作为身份唯一键。

maxLength: 80

emailemail | ""可选

客户联系邮箱;不用于自动合并客户身份。

attributesobject可选

最多 128 个键,每键 1–128 字符,总 JSON ≤64 KiB;值可为嵌套 JSON,单值最多 20 层和 10,000 个节点。禁止保留字段;null 是属性值,删除使用 removeAttributes。标签保存在 attributes.tags,更新使用 tagChanges。

removeAttributesarray可选

显式删除属性键;最多 128 个不含 tags 的键,键名须以字母开头并只含字母、数字和下划线。

maxItems: 128

tagChangesobject可选

使用 add 与 remove 数组增减标签;不能通过 patch.attributes 直接覆盖 tags。

展开子字段
addarray必填

本次操作的 add 值,类型和约束见字段标注。

maxItems: 20

removearray必填

本次操作的 remove 值,类型和约束见字段标注。

maxItems: 20

响应字段

成功响应包含 requestId 和 scope。结合实际业务状态或 accepted 判断操作结果;可选字段不可用时省略。

HTTP 200 · application/json

requestIduuid必填

服务端生成的 HTTP 请求 UUID,排查请求时提供这个值。

scopeobject必填

响应实际所属的 App 和环境。Header 只能核对,不能切换 Key 范围。

展开子字段
projectIdstring必填

凭据绑定的 App ID。

minLength: 1

environmentenum必填

独立数据范围:sandbox 或 live。

查看允许值

"sandbox""live"

customerobject必填

客户资料对象。

展开子字段
iduuid必填

本次操作的 id 值,类型和约束见字段标注。

externalUserIdstring | null必填

你服务端登录系统的稳定用户 ID;不是邮箱。按邮箱预建、尚未认领的客户为 null。

namestring必填

客户或对象的展示名称,不作为身份唯一键。

maxLength: 80

emailemail | ""必填

客户联系邮箱;不用于自动合并客户身份。

attributesobject必填

最多 128 个键,每键 1–128 字符,总 JSON ≤64 KiB;值可为嵌套 JSON,单值最多 20 层和 10,000 个节点。禁止保留字段;null 是属性值,删除使用 removeAttributes。标签保存在 attributes.tags,更新使用 tagChanges。

revisioninteger必填

读取资料时返回的版本号;更新使用它检测并发修改。

min: 0 · max: 9007199254740991

createdAtdate-time必填

记录创建时的 ISO 8601 UTC 时间。

updatedAtdate-time必填

记录最后更新时的 ISO 8601 UTC 时间。

changedboolean必填

本次操作的 changed 值,类型和约束见字段标注。

replayedboolean必填

本次操作的 replayed 值,类型和约束见字段标注。

处理错误

常见失败
错误码处理方式
UNAUTHENTICATED核对 Key,或将过期客户 Token 重新签发一次。
FORBIDDEN核对当前 Key 权限与客户访问范围。
INVALID_REQUEST检查字段类型、UUID、十进制字符串和互斥字段。
SCOPE_MISMATCH使用凭据绑定的 App 和环境。

常见失败

  • UNAUTHENTICATED

    处理方式
    核对 Key,或将过期客户 Token 重新签发一次。
  • FORBIDDEN

    处理方式
    核对当前 Key 权限与客户访问范围。
  • INVALID_REQUEST

    处理方式
    检查字段类型、UUID、十进制字符串和互斥字段。
  • SCOPE_MISMATCH

    处理方式
    使用凭据绑定的 App 和环境。

相关:完整请求与错误约定·返回接口索引