设置渠道关联标识
渠道关联标识是触达通道上的标识值,可作为该通道的触达对象。设置和解绑均基于 EUID 与通道 ID 执行。
完整调用地址由数据中心的 Base URL 与下方接口路径组成。Base URL、API Key 与 API Secret 的获取方式请参见 REST API 概述。
调用验证
EngageLab REST API 采用 HTTP 基本认证 的验证方式:HTTP Header(头)里加 Authorization:
Authorization: Basic ${base64_auth_string}
上述 base64_auth_string 的生成算法为:base64(api_key:api_secret)
- Header 名称是 "Authorization",值是 base64 转换过的 "username:password" 对(中间有个冒号)。
- 在 MA API 的场景里,username 是 APIKey,password 是 APISecret。请在数据来源中添加 API 类型的数据源获得 APIKey 与 API Secret。
设置渠道关联标识
调用地址
POST /v1/user/channel
请求示例
请求头
> POST /v1/user/channel
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
请求体
{
"euid": 10362473,
"channel_id": 8801,
"ma_rid": "1a0018970d1c9f8f8e2",
"value": [
"channel_identifier_1",
"channel_identifier_2"
]
}
请求参数
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
euid |
Long | 是 | 用户唯一 ID。必须是当前项目中已存在的用户。 |
channel_id |
Long | 是 | 触达通道 ID。必须是当前项目中已存在的通道。 |
ma_rid |
String | 否 | MA Registration ID。传入后,本次写入的渠道标识绑定该 MA RID,并记录其平台;该 MA RID 转移到其他 EUID 时,绑定了它的渠道标识会随之转移。不传、空字符串或只含空白时,本次写入不建立绑定;若本次写入的标识值此前已有绑定,原绑定会被清除。无法从该值解析出平台时,设置失败。 |
value |
Array<String> | 是 | 待设置的渠道关联标识值列表。列表不能为空,每项不能为空白。值按原文保存,区分大小写,不会去掉首尾空白。同一次请求中的重复值会去重。 |
同一 euid + channel_id 下,相同的标识值按本次请求重写:原记录删除后写入新记录,更新时间变为当前时间。本次列表之外的已有标识值保持不变,新值追加保存。
对于 AppPush/WebPush 通道,同一 channel_id 下的同一个渠道标识只允许归属一个 EUID。写入新的 EUID 成功后,系统再从其他仍持有该值的 EUID 移除它。其他通道类型不做这个唯一性换绑。
返回参数
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
code |
Int | 是 | 接口调用是否成功,0 表示成功。 |
message |
String | 是 | 接口调用结果描述。 |
成功示例
{
"code": 0,
"message": "success"
}
解绑渠道关联标识
调用地址
POST /v1/user/channel/unbind
请求示例
请求头
> POST /v1/user/channel/unbind
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
请求体
{
"euid": 10362473,
"channel_id": 8801,
"value": [
"channel_identifier_1",
"channel_identifier_2"
]
}
请求参数
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
euid |
Long | 是 | 用户唯一 ID。 |
channel_id |
Long | 是 | 触达通道 ID。 |
value |
Array<String> | 是 | 要解绑的渠道关联标识值列表。每一项必须与已设置的标识值完全一致,区分大小写,不会去掉首尾空白。 |
解绑按渠道标识值匹配,不按 ma_rid 匹配。解绑请求没有 ma_rid 字段。按 euid + channel_id + value 精确匹配并移除。用户不存在,或该用户下没有完全一致的标识值时,不修改数据,仍返回成功。解绑不校验 channel_id 是否属于当前项目。
返回参数
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
code |
Int | 是 | 接口调用是否成功,0 表示成功。 |
message |
String | 是 | 接口调用结果描述。 |
成功示例
{
"code": 0,
"message": "success"
}
错误码
设置接口在业务校验失败时返回下列错误码,HTTP 状态码为 400。响应体里的 message 是英文说明,不是下表中的中文描述。解绑接口只在必填参数不合法或请求体无法解析时返回 55004;用户不存在或标识值不存在时仍返回成功。
| 错误码 | 描述 | 详细说明 |
|---|---|---|
| 55004 | 业务参数不合法 | 设置时,channel_id 在当前项目中不存在,响应 message 为 channel_id does not exist in current project: {channel_id}。设置时,ma_rid 无法解析出平台,响应 message 为 ma_rid is invalid。设置和解绑时,必填字段缺失、value 为空或含空白项,以及请求体无法解析(此时 message 为 Invalid request payload format),也返回该错误码。 |
| 55108 | 无效的 EUID | 仅设置接口返回。当前项目中不存在该 EUID,响应 message 为 EUID does not exist: {euid}。 |
失败示例
channel_id 不存在:
{
"code": 55004,
"message": "channel_id does not exist in current project: 8801"
}
ma_rid 无法解析:
{
"code": 55004,
"message": "ma_rid is invalid"
}
EUID 不存在:
{
"code": 55108,
"message": "EUID does not exist: 10362473"
}










