使用文档

推送服务可以通过REST API接口进行使用。

环信REST API介绍,请参考:https://docs-im.easemob.com/im/server/ready/intro

即时推送与IM服务使用一套用户体系,用户体系相关接口,请查看:https://docs-im.easemob.com/im/server/ready/user

接口描述

通过REST使用即时推送服务:1.使用单接口批量发送推送消息,2.通过接口组合发送推送消息。

通过接口组合发送推送的流程

创建推送消息 → 创建全局推送任务/创建推送任务

注意:推送任务最多3个同时进行,超过3个推送任务调用接口将会报错!

单独为某些用户推送

使用该接口可以指定单个或批量环信ID,进行消息推送。

HTTP Request

/{org_name}/{app_name}/push/single

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

字段类型说明
targets数组im 用户名
async bool是否异步推送。默认:异步
pushMessagejson推送消息。消息内容请查看:推送消息字段解释

Response Body

在返回值中查看data字段包含的信息

字段类型说明
idstring推送用户名
pushStatusstring推送结果: SUCCESS 推送成功; FAIL 推送失败; ERROR 推送异常; ASYNC_SUCCESS 异步推送成功
data json 同步推送:三方手机厂商返回推送结果,异步推送:写异步消息结果
desc string 推送结果描述

请求示例

curl -X POST "http://localhost:8099/easemob-demo/testy/push/single" -H "Authorization: Bearer YWMtOzQVjJ3mEeuJQv1qXhB5QAAAAAAAAAAAAAAAAAAAAAFDtjwasNNKD6W3CET2O3RNAQMAAAF41YIKUABPGgDuIZeu5IMVC_M9G5JlTjUsZeYVSg5o8BwshLgWveZxjA" -H "Content-Type: application/json" --data-raw "{
    \"targets\": [
        \"test2\"
    ],
    \"pushMessage\": {
        \"title\": \"你好\",
        \"subTitle\": \"你好\",
        \"content\": \"你好\",
        \"vivo\": {
 
        }
    }
}"

可能返回的结果示例

返回值200,表示成功

{
    "timestamp": 1619506344007,
    "data": [
        {
            "id": "test2",
            "pushStatus": "ASYNC_SUCCESS",
            "desc": "async success."
        }
    ],
    "duration": 14
}

通过接口组合发送推送,应按照如下流程: 创建推送消息 → 创建全局推送任务/创建推送任务

创建推送消息

创建推送消息并记录返回结果中的推送消息id,创建推送任务需要携带推送消息id。

HTTP Request

/{org_name}/{app_name}/push/message

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

消息内容请查看:推送消息字段解释

Response Body

在返回值中查看data字段包含的信息

参数说明
推送消息id需要保存,创建推送任务是基于此id

请求示例

curl -X POST "http://localhost:8099/easemob-demo/testy/push/message" -H "Authorization: Bearer YWMtOzQVjJ3mEeuJQv1qXhB5QAAAAAAAAAAAAAAAAAAAAAFDtjwasNNKD6W3CET2O3RNAQMAAAF41YIKUABPGgDuIZeu5IMVC_M9G5JlTjUsZeYVSg5o8BwshLgWveZxjA" -H "Content-Type: application/json" --data-raw "{
    \"title\": \"你好\",
    \"subTitle\": \"你好\",
    \"content\": \"你好\",
    \"vivo\": {}
}"
}"

可能返回的结果示例

返回值200,表示成功

{
    "timestamp": 1618817127903,
    "data": 833724991672734897,
    "duration": 0
}

查询推送消息

查询推送消息信息。

HTTP Request

/{org_name}/{app_name}/push/message/{messageId}

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明

字段类型备注
type string 推送对象(IM)。目前只支持im
pushFunc string 推送方式(ALL)。目前只支持全部推送
pushMsgId long 推送消息id。由创建推送消息返回

Response Body

在返回值中查看data字段包含的信息

参数说明
appkey环信appkey
timestamp时间戳
title通知栏标题
subTitle子标题
content你好
vivo厂商自定义字段

请求示例

curl -X GET "http://localhost:8099/easemob-demo/testy/push/message/832655326988867864" -H "Authorization: Bearer YWMtOzQVjJ3mEeuJQv1qXhB5QAAAAAAAAAAAAAAAAAAAAAFDtjwasNNKD6W3CET2O3RNAQMAAAF41YIKUABPGgDuIZeu5IMVC_M9G5JlTjUsZeYVSg5o8BwshLgWveZxjA"
}"

可能返回的结果示例

返回值200,表示成功

{
    "timestamp": 1618922805143,
    "data": {
        "appkey": "easemob-demo#testy",
        "timestamp": 1618922805091,
        "title": "你好1234",
        "subTitle": "你好",
        "content": "你好",
        "vivo": {}
    },
    "duration": 17
}

创建全局推送任务

创建推送消息,拿到推送消息ID,再通过创建全局推送任务进行全局消息推送。

HTTP Request

/{org_name}/{app_name}/push/task/broadcast

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明

字段类型备注
type string 推送对象(IM)目前只支持im
pushFunc string 推送方式(ALL)目前只支持全部推送(后续会增加组推送等)
pushMsgId long 推送消息id

Response Body

参数说明
timestamp时间戳
data 推送任务ID(查询推送结果需要使用推送ID)

请求示例

curl -X POST "http://localhost:8099/easemob-demo/testy/push/task/broadcast" -H "Content-Type: application/json" --data-raw "{
    \"type\": \"IM\",
    \"pushFunc\": \"ALL\",
    \"pushMsgId\": 832253695868580464
}"

可能返回的结果示例

返回值200,表示成功

{
    "timestamp": 1618817591755,
    "data": 833726937301309957,
    "duration": 1
}

创建推送任务

本接口为预留接口,后续将支持不同类型的推送模式,目前只支持全部推送。

HTTP Request

/{org_name}/{app_name}/push/task

Request Headers

参数说明
Content-Typeapplication/json
AuthorizationBearer ${token}

Request Body

参数说明

字段类型备注
type string 推送对象(IM)目前只支持IM
pushFunc string 推送方式(ALL)目前只支持全部推送(后续会增加组推送等)
pushMessage json 推送消息

Response Body

参数说明
timestamp时间戳
data 推送任务ID(后续相关推送结果都是基于任务的,需要保存)

请求示例

curl -X POST "http://localhost:8099/easemob-demo/testy/push/task" -H "Content-Type: application/json" --data-raw "{
    \"typs\": \"IM\",
    \"pushFunc\": \"ALL\",
    \"pushMessage\": {
        \"title\": \"你好1234\",
        \"subTitle\": \"你好\",
        \"content\": \"你好\",
        \"vivo\": {}
    }
}"

可能返回的结果示例

返回值200,表示成功

{
    "timestamp": 1618817591755,
    "data": 833726937301309957,
    "duration": 1
}