利用 REST 接口可通过以下三种方式使用即时推送服务:
- 使用单接口批量发送推送通知。
- 通过接口组合发送推送通知,即先创建推送通知,然后创建全量推送任务或者创建列表推送任务。
- 通过推送标签发送推送通知。
注意:推送任务最多 3 个同时进行,否则接口调用时会报错!
全量推送和列表推送均会创建任务,而推送任务的创建是有时间限制的,推送任务数限制如下:
- 五分钟内限制创建任务数为 3,可配置;5 分钟内最多可创建 3 个任务。如果超过该任务数,请联系商务。
- 全量推送创建任务后,限制数增加1,未开始执行的也记录;
- 标签/列表推送创建任务后,限制数加1,执行完成后,限制数减1;
- 所有限制均为 5 分钟,后续可以继续创建。
strategy
Int 推送策略:
-
0
:厂商通道优先,失败时走环信通道。
-
1
:在线或者离线推送都走环信通道。若用户在线,则直接推送;若用户离线,消息会保留一段时间(视版本而定),超过该期限则丢弃消息。
-(默认)
2
:只走第三方厂商推送。若用户离线,消息保留时间视不同厂商而定。若推送失败,直接丢弃推送消息。
-
3
:环信通道优先,在线推送走环信通道,离线推送走厂商通道。
-
4
:仅走环信通道且只推在线用户,离线用户收不到推送通知。 否
pushMessage
JSON 推送通知。关于通知内容,请查看
配置推送通知
。 是
curl -X POST 'http://XXXX/XXXX/XXXX/push/sync/test1' \
-H 'Authorization: Bearer <YourAppToken>' \
-H 'Content-Type: application/json' \
-d '{
"strategy": 3,
"pushMessage": {
"title": "环信推送",
"content": "你好,欢迎使用环信推送服务",
"sub_title": "环信",
推送成功的示例如下:
"timestamp": 1689154498019,
"data": [
"pushStatus": "SUCCESS",
"data": {
"code": 200,
"data": {
"expireTokens": [],
"sendResult": true,
"requestId": "104410638-fd96648b6bb4344bc4f5e29b158fdb07",
"failTokens": [],
"msgCode": 200
"message": "Success"
"duration": 2
因未绑定推送信息导致推送失败的响应示例:
"timestamp": 1689154624797,
"data": [
"pushStatus": "FAIL",
"desc": "no push binding"
"duration": 0
因接收推送通知的用户 ID 不存在导致推送失败的响应示例:
"timestamp": 1689154534352,
"data": [
"pushStatus": "FAIL",
"desc": "appUser not exists"
"duration": 0
你可以为指定的单个或多个用户进行消息推送。
strategy
Int 推送策略:
-0
:厂商通道优先,失败时走环信通道。
- 1
:在线或者离线推送都走环信通道。若用户在线,则直接推送;若用户离线,消息保留 7 天,超过该期限则丢弃消息。
-(默认)2
:只走第三方厂商推送。若用户离线,消息保留时间视不同厂商而定。若推送失败,直接丢弃推送消息。
- 3
:环信通道优先,在线推送走环信通道,离线推送走厂商通道。
- 4
:仅走环信通道且只推在线用户,离线用户收不到推送通知。 否
pushMessage
JSON 推送通知。关于通知内容,请查看 配置推送通知。 是
curl -X POST "http://localhost:8099/easemob-demo/testy/push/single" -H "Authorization: Bearer <YourAppToken> -H "Content-Type: application/json" -d "{
"targets": [
"test2"
"pushMessage": {
"title": "Hello",
"subTitle": "Hello",
"content": "Hello",
"vivo": {
"timestamp": 1619506344007,
"data": [
"id": "test2",
"pushStatus": "ASYNC_SUCCESS",
"desc": "async success."
"duration": 14
向单个标签内的所有用户推送通知。
strategy
Int 推送策略:
- 0
:厂商通道优先,失败时走环信通道。
- 1
:在线或者离线都通过环信通道推送。若用户在线,则直接推送;若用户离线,消息保留 7 天,超过该期限则丢弃消息。
-(默认)2
:只通过第三方厂商推送。若用户离线,消息保留时间视不同厂商而定。若推送失败,直接丢弃推送消息。
- 3
:环信通道优先,在线走环信,离线走厂商。
- 4
:仅走环信通道且只推在线用户,离线用户收不到推送通知。 否
pushMessage
JSON 推送通知。关于通知的内容,请参考配置推送通知。 是
curl -L -X POST 'http://a1.easemob.com/easemob/easeim/push/list/label' \
-H 'Authorization: Bearer YWMtIPBHKsOyEeAAAAAAAAAAAExCXvf5bRGAJBgXNYFJVQ9AQMAAAGAWu67KQBPGgBOV9ghkGKbtt9H9b1' \
-H 'Content-Type: application/json' \
--data-raw '{
"targets": [
"post-90s"
"strategy": 2,
"pushMessage": {
"title": "Easemob PUSH",
"content": "Welcome to Easemob Push Service",
"sub_title": "Easemob"
"timestamp": 1650859482843,
"data": {
"taskId": 968120369184112182
"duration": 0
每次调用该接口,服务端会创建一个推送任务,生成推送任务 ID,用于推送任务的数据统计。
strategy
非必需 integer 推送策略。
- 0
:厂商通道优先,失败时走环信通道。
- 1
:在线或者离线都通过环信通道推送。若用户在线,则直接推送;若用户离线,消息保留 7 天,超过该期限则丢弃消息。
-(默认)2
:只通过第三方厂商推送。若用户离线,消息保留时间视不同厂商而定。若推送失败,直接丢弃推送消息。
- 3
:环信通道优先,在线走环信,离线走厂商。
- 4
:仅走环信通道且只推在线用户,离线用户收不到推送通知。
pushMessage
必需 JSON 推送通知。
curl -X POST "http://localhost:8099/easemob-demo/testy/push/task" -H "Content-Type: application/json" --data-raw "{
\"pushMessage\": {
\"title\": \"Hello1234\",
\"subTitle\": \"Hello\",
\"content\": \"Hello\",
\"vivo\": {}
"timestamp": 1618817591755,
"data": 833726937301309957,
"duration": 1
通过接口组合发送全量推送,应按照如下流程:
创建推送通知;
创建全量推送任务或者创建列表推送任务。
curl -X POST "http://localhost:8099/easemob-demo/testy/push/message" -H "Authorization: Bearer YWMtOzQVjJ3mEeuJQv1qXhB5QAAAAAAAAAAAAAAAAAAAAAFDtjwasNNKD6W3CET2O3RNAQMAAAF41YIKUABPGgDuIZeu5IMVC_M9G5JlTjUsZeYVSg5o8BwshLgWveZxjA" -H "Content-Type: application/json" --data-raw "{
\"title\": \"Hello\",
\"subTitle\": \"Hello\",
\"content\": \"Hello\",
\"vivo\": {}
"timestamp": 1618817127903,
"data": 833724991672734897,
"duration": 0
查询推送通知
查询推送通知信息。
strategy
Int 推送策略:
- 0
:厂商通道优先,失败时走环信通道。
- 1
:在线或者离线推送都走环信通道。该情况下,若用户在线,则直接推送;若用户离线,消息保留 7 天,超过该期限则丢弃消息。
-(默认)2
:只通过第三方厂商推送。若用户离线,消息保留时间视不同厂商而定。若推送失败,直接丢弃推送消息。
- 3
:环信通道优先,在线推送走环信通道,离线推送走厂商通道。
- 4
:仅走环信通道且只推在线用户,离线用户收不到推送通知。 否
pushMsgId
Long 推送通知 ID。 是
curl -X POST "http://localhost:8099/easemob-demo/testy/push/task/broadcast" -H "Content-Type: application/json" --data-raw "{
\"pushMsgId\": 832253695868580464
"timestamp": 1618817591755,
"data": 833726937301309957,
"duration": 1