更新时间:2022-11-02 GMT+08:00

App消息发布(废弃)

功能介绍

将消息直发给endpoint设备。

URI

POST /v2/{project_id}/notifications/endpoints/{endpoint_urn}/publish

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

获取项目ID请参考 获取项目ID

endpoint_urn

String

Endpoint的唯一资源标识,可通过查询Application的Endpoint列表获取该标识

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

message

String

message与message_structure二者选其一。

message, App消息发布。

message_structure, 使用消息结构体方式的App消息发布。

app推送的消息内容,当前支持的推送平台有HMS、APNS、APNS_SANDBOX。

HMS是为开发者提供的消息推送平台。

APNS和APNS_SANDBOX是用于推送iOS消息的服务平台。

HMS平台指定的消息内容不超过2K。

APNS和APNS_SANDBOX平台的消息内容不能超过4K。

推送平台的消息内容格式要求详情见application消息体格式。

华为透传消息

{ "hps": { "msg": { "type": 1, "body": { "key": "value" } } } }

华为系统通知栏消息

{ "hps": { "msg": { "type": 3, "body": { "content": "Push message content", "title": "Push message content" }, "action": { "type": 1, "param": { "intent": "#Intent;compo=com.rvr/.Activity;S.W=U;end" } } }, "ext": { "biTag": "Trump", "icon": "http://upload.w.org/00/150pxsvg.png" } } }

苹果平台消息格式 { "aps": { "alert": "hello world" } }

message_structure

String

app推送的消息内容,当前支持的推送平台有HMS、APNS、APNS_SANDBOX。

HMS是为开发者提供的消息推送平台。

APNS和APNS_SANDBOX是用于推送iOS消息的服务平台。

HMS平台指定的消息内容不超过2K。

APNS和APNS_SANDBOX平台的消息内容不能超过4K。

推送平台的消息内容格式要求详情见application消息体格式。

华为透传消息

{ "HMS": { "hps": { "msg": { "type": 1, "body": { "key": "value" } } } } }

华为系统通知栏消息

{ "HMS": { "hps": { "msg": { "type": 3, "body": { "content": "Push message content", "title": "Push message content" }, "action": { "type": 1, "param": { "intent": "#Intent;compo=com.rvr/.Activity;S.W=U;end" } } }, "ext": { "biTag": "Trump", "icon": "http://upload.w.org/00/150pxsvg.png" } } } }

苹果平台消息格式

{ "APNS": { "aps": { "alert": "hello world" } } }

time_to_live

String

消息发送的生存时间,是相对于发布时间的。

SMN系统将移动推送消息转交给推送平台前,会计算该消息在系统消耗的时间。只有消耗的时间小于time_to_live时,SMN才会将消息转交给推送平台,并将time_to_live减去消耗的时间传递给推送平台,否则消息废弃。

time _to_live的单位是s,变量默认值是3600s,即一小时。值为正整数且小于等于3600*24。

缺省值:3600

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

message_id

String

唯一的消息ID。

request_id

String

请求的唯一标识ID。

状态码: 400

表5 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

code

String

服务异常错误信息编码。

message

String

服务异常错误信息描述。

状态码: 403

表6 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

code

String

服务异常错误信息编码。

message

String

服务异常错误信息描述。

状态码: 404

表7 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

code

String

服务异常错误信息编码。

message

String

服务异常错误信息描述。

状态码: 500

表8 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

code

String

服务异常错误信息编码。

message

String

服务异常错误信息描述。

请求示例

  • App消息发布
    POST https://{SMN_Endpoint}/v2/{project_id}/notifications/endpoints/{endpoint_urn}/publish
    
    {
      "message" : {
        "hps" : {
          "msg" : {
            "action" : {
              "param" : {
                "intent" : "#Intent;compo=com.HC.SmnAppPush.defaultAction/.Activity;S.W=U;end"
              },
              "type" : 1
            },
            "body" : {
              "title" : "hello world",
              "content" : "hello world"
            },
            "type" : 3
          }
        }
      },
      "time_to_live" : 3600
    }
  • 使用消息结构体方式的App消息发布
    POST https://{SMN_Endpoint}/v2/{project_id}/notifications/endpoints/{endpoint_urn}/publish
    
    {
      "message" : {
        "HMS" : {
          "hps" : {
            "msg" : {
              "action" : {
                "param" : {
                  "intent" : "#Intent;compo=com.HC.SmnAppPush.defaultAction/.Activity;S.W=U;end"
                },
                "type" : 1
              },
              "body" : {
                "title" : "hello world",
                "content" : "hello world"
              },
              "type" : 3
            }
          }
        }
      },
      "time_to_live" : 3600
    }

响应示例

状态码: 200

OK

{
  "request_id" : "6a63a18b8bab40ffb71ebd9cb80d0085",
  "message_id" : "bf94b63a5dfb475994d3ac34664e24f2"
}

状态码

状态码

描述

200

OK

400

Bad Request

403

Unauthorized

404

Not Found

500

Internal Server Error

错误码

请参见错误码