批量获取用户属性

大约 2 分钟

批量获取用户属性

用户属性指实时消息互动用户的信息,如用户昵称、头像、邮箱、电话、性别、签名、生日等。

例如,在招聘场景下,利用用户属性功能,可以存储性别、邮箱、用户类型(面试者)、职位类型(web 研发)等。当查看用户信息时,可以直接查询服务器存储的用户属性信息。

功能说明

  • 根据指定的用户 ID 列表和属性列表,查询用户属性。
  • 每次最多可获取 100 个用户的属性。
  • 如果指定的用户 ID 或用户属性不存在,返回空数据 {}。

调用频率上限

100 次/秒/App Key

请求 URL

POST https://{host}/{org_name}/{app_name}/metadata/user/get

关于请求 URL 中的参数说明,详见 请求 URL 参数介绍

请求示例

# 将 <YourAppToken> 替换为你在服务端生成的 App Token

curl -X POST 'https://XXXX/XXXX/XXXX/metadata/user/get'
-H 'Content-Type: application/json' \
-H 'Accept: application/json'  \
-H 'Authorization: Bearer <YourAppToken>' \
-d '{
  "properties": [
    "avatarurl",
    "ext",
    "nickname"
  ],
  "targets": [
    "user1",
    "user2",
    "user3"
  ]
}' 

请求 header 参数

关于 Content-TypeAcceptAuthorization 字段的说明,详见 请求 header 参数说明

请求 body 参数

参数类型是否必需描述
targetsArray用户 ID 列表,最多可传 100 个用户 ID。
propertiesArray属性名列表,查询结果只返回该列表中包含的属性,不在该列表中的属性将被忽略。

响应示例

{
  "timestamp": 1620448826647,
  "data": {
    "user1": {
      "ext": "ext",
      "nickname": "nickname",
      "avatarurl": "https://www.easemob.com/avatar.png"
    },
    "user2": {
      "ext": "ext",
      "nickname": "nickname",
      "avatarurl": "https://www.easemob.com/avatar.png"
    },
    "user3": {
      "ext": "ext",
      "nickname": "nickname",
      "avatarurl": "https://www.easemob.com/avatar.png"
    }
  },
  "duration": 3
}

响应 body 字段

如果返回的 HTTP 状态码为 200,表示请求成功,响应包体中包含以下字段:

字段类型描述
dataObject用户属性键值对。
如果 data 为空,请确认用户 ID 是否存在或用户是否有用户属性。
timestampLongUnix 时间戳,单位为毫秒。
durationInt从发送请求到响应的时长,单位为毫秒。

错误码

如果返回的 HTTP 状态码非 200,表示请求失败,可能提示以下错误码:

HTTP 状态码错误类型错误提示可能原因处理建议
400BAD_REQUESTexceed allowed batch size %s超过允许获取的用户数的用户属性。每次最多可获取 100 个用户的用户属性。减少批量获取用户属性的用户数。
401metadata_errorauth error鉴权失败。
403FORBIDDEN{appkey} user metadata service not allow用户属性功能未开通。联系商务开通用户属性功能。

关于其他错误,你可以参考 响应状态码 了解可能的原因。

上次编辑于: