跳至内容

用户同步 ​

POST /api/open/v1/users/sync

使用请求签名。首次以 userId 创建数据,之后更新同一空间内同一用户。请在推送私聊输入前完成同步。

json
{
  "userId": "u-1001",
  "nickname": "小明",
  "avatarUrl": "https://cdn.example.com/avatar.png",
  "gender": "MALE",
  "age": 25,
  "country": "中国",
  "region": "浙江",
  "city": "杭州",
  "language": "zh-CN",
  "timezone": "Asia/Shanghai",
  "utcOffsetMinutes": 480,
  "status": "ACTIVE",
  "tags": ["新用户"]
}

字段 ​

字段必填约束/省略时行为
userId是最长 128 字符,不得以 test: 开头
nickname否最长 100 字;省略清空
avatarUrl否HTTP(S) URL,最长 1024 字符;省略清空
gender否UNKNOWN、MALE、FEMALE、OTHER;默认 UNKNOWN
age否0–150;省略清空
country / region / city否各最多 100 字;省略清空
language否有效语言标签,最多 35 字符,例如 zh-CN;省略清空
timezone否有效时区,最多 64 字符,例如 Asia/Shanghai;省略清空
utcOffsetMinutes否-840~840 的整数分钟;省略清空
status否ACTIVE 或 BLOCKED;省略恢复为 ACTIVE
tags否最多 20 个,每个最多 40 字;省略变为空列表

这是完整同步,不是部分修改

每次请传完整的最新数据。省略字段会清空或使用默认值,包括覆盖控制台的标签和状态。若用户应继续禁止交互,请明确传 BLOCKED。控制台的运营备注不受影响。

响应 ​

json
{
  "code": "OK",
  "message": "success",
  "data": {
    "userId": "u-1001",
    "created": true,
    "nickname": "小明",
    "avatarUrl": null,
    "gender": "UNKNOWN",
    "age": null,
    "country": null,
    "region": null,
    "city": null,
    "language": null,
    "timezone": null,
    "utcOffsetMinutes": null,
    "status": "ACTIVE",
    "tags": [],
    "updatedAt": "2026-10-26T08:00:00Z"
  }
}

上例对应只同步 userId、nickname 的请求。created 表示是否首次创建;其余字段为保存后的数据。updatedAt 为 UTC ISO 8601 时间。

OmniChat · 让交互自然发生