消息推送分为异步推送和同步推送:
利用 RESTful 接口可通过以下方式使用即时推送服务:
参数 | 类型 | 描述 | 是否必需 |
---|---|---|---|
host |
String | 即时通讯服务分配的 RESTful API 访问域名。 | 是 |
org_name |
String | 即时通讯服务分配给每个企业(组织)的唯一标识。 | 是 |
app_name |
String | 即时通讯服务分配给每个 app 的唯一标识。 | 是 |
username |
String | 用户 ID。 | 是 |
参数 | 类型 | 描述 |
---|---|---|
timestamp |
Number | 响应的 Unix 时间戳,单位为毫秒。 |
duration |
Number | 从发送请求到响应的时长,单位为毫秒。 |
即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,必须在请求头部填入如下 Authorization
字段:
Authorization:Bearer ${YourAppToken}
为提高项目的安全性,声网使用 Token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 仅支持使用 app 权限 Token 的鉴权方式,详见使用 App 权限 Token 鉴权。
向单个或多个用户发送推送通知。
POST https://{host}/{org_name}/{app_name}/push/single
参数及描述详见公共参数。
参数 | 类型 | 描述 | 是否必需 |
---|---|---|---|
Content-Type |
String | 内容类型:application/json |
是 |
Authorization |
String | App 管理员的鉴权 token,格式为 Bearer YourAppToken ,其中 Bearer 为固定字符,后面为英文空格和获取到的 app 权限 token。 |
是 |
字段 | 类型 | 描述 | 是否必需 |
---|---|---|---|
targets |
List | 推送的目标用户 ID。最多可传 100 个用户 ID。 | 是 |
async |
Boolean | 是否异步推送:
|
否 |
strategy |
Number | 推送策略:
|
否 |
pushMessage |
JSON | 推送消息。消息内容详见配置推送通知。 | 是 |
如果返回的 HTTP 状态码为 200
,表示请求成功,响应包体中包含以下字段:
字段 | 类型 | 描述 |
---|---|---|
data |
JSON | 推送结果。 |
id |
String | 推送的目标用户 ID。 |
pushStatus |
String | 推送状态:
|
desc |
String | 推送结果的相关描述。 |
其他参数及描述详见公共参数。
如果返回的 HTTP 状态码非 200
,表示请求失败。你可以参考响应状态码了解可能的原因。
curl -X POST "http://XXXX/XXXX/XXXX/push/single" -H "Authorization: Bearer <YourAppToken>" -H "Content-Type: application/json" --data-raw "{
"targets": [
"test2"
],
"pushMessage": {
"title": "Hello",
"subTitle": "Hello",
"content": "Hello",
"vivo": {
}
}
}"
{
"timestamp": 1619506344007,
"data": [
{
"id": "test2",
"pushStatus": "ASYNC_SUCCESS",
"desc": "async success."
}
],
"duration": 14
}
若传单个标签,则向单个标签内的所有用户发送推送通知。若传多个标签,则消息推送给同时存在这些标签中的用户,即取标签中的用户交集。
每次调用该接口,服务端均会创建一个推送任务,生成推送任务 ID,用于推送任务的数据统计。最多同时执行 3 个推送任务。
POST https://{host}/{org_name}/{app_name}/push/list/label
参数及说明详见公共参数。
参数 | 类型 | 描述 | 是否必需 |
---|---|---|---|
Content-Type |
String | 内容类型:application/json |
是 |
Authorization |
String | App 管理员的鉴权 token,格式为 Bearer YourAppToken ,其中 Bearer 为固定字符,后面为英文空格和获取到的 app 权限 token。 |
是 |
字段 | 类型 | 描述 | 是否必需 |
---|---|---|---|
targets |
List | 标签名称。可传单个或多个标签名称。
|
是 |
strategy |
Number | 推送策略:
|
否 |
pushMessage |
JSON | 推送消息。消息内容详见配置推送通知。 | 是 |
如果返回的 HTTP 状态码为 200
,表示请求成功,响应包体中包含以下字段:
字段 | 类型 | 描述 |
---|---|---|
data |
JSON | 推送任务数据。 |
taskId |
Number | 推送任务 ID。 |
其他参数及描述详见公共参数。
如果返回的 HTTP 状态码非 200
,表示请求失败。你可以参考响应状态码了解可能的原因。
curl -L -X POST 'http://XXXX/XXXX/XXXX/push/list/label' \
-H 'Authorization: Bearer <YourAppToken>' \
-H 'Content-Type: application/json' \
--data-raw '{
"targets": [
"post-90s"
],
"strategy": 2,
"pushMessage": {
"title": "Agora PUSH",
"content": "Welcome to Agora Push Service",
"sub_title": "Agora"
}
}'
{
"timestamp": 1650859482843,
"data": {
"taskId": 968120369184112182
},
"duration": 0
}
对 app 下的所有用户发送推送通知。
每次调用该接口,服务端均会创建一个推送任务,生成推送任务 ID,用于推送任务的数据统计。最多同时执行 3 个推送任务。
POST https://{host}/{org_name}/{app_name}/push/task
参数及描述详见公共参数。
参数 | 类型 | 描述 | 是否必需 |
---|---|---|---|
Content-Type |
String | 内容类型:application/json 。 |
是 |
Authorization |
String | App 管理员的鉴权 token,格式为 Bearer YourAppToken ,其中 Bearer 为固定字符,后面为英文空格和获取到的 app 权限 token。 |
是 |
字段 | 类型 | 描述 | 是否必需 |
---|---|---|---|
strategy |
Number | 推送策略:
|
否 |
pushMessage |
JSON | 推送通知详情。 | 是 |
如果返回的 HTTP 状态码为 200
,表示请求成功,响应包体中包含以下字段:
参数 | 类型 | 描述 |
---|---|---|
data |
Number | 推送任务 ID,用于服务端对推送任务进行数据统计。 |
其他参数及描述详见公共参数。
如果返回的 HTTP 状态码非 200
,表示请求失败。你可以参考响应状态码了解可能的原因。
curl -X POST "http://XXXX/XXXX/XXXX/push/task" -H "Content-Type: application/json" --data-raw "{
"pushMessage": {
"title": "Hello1234",
"subTitle": "Hello",
"content": "Hello",
"vivo": {}
}
}"
{
"timestamp": 1618817591755,
"data": 833726937301309957,
"duration": 1
}