更新时间:2022-01-10 GMT+08:00
分享

消息发布

功能介绍

将消息发送给Topic的所有订阅端点。当返回消息ID时,该消息已被保存并开始尝试将其推送给Topic的订阅者。三种消息发送方式

  • message
  • message_structure
  • message_template_name

只需要设置其中一个,如果同时设置,生效的优先级为 message_structure > message_template_name > message。

邮件(Email)和短信(SMS)类型的消息,单个帐号发送超过1000条/10分钟时,超出部分信息可能会丢失。

调试

您可以在API Explorer中调试该接口。

URI

POST /v2/{project_id}/notifications/topics/{topic_urn}/publish

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

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

topic_urn

String

Topic的唯一的资源标识,可通过查询主题列表获取该标识。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

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

表3 请求Body参数

参数

是否必选

参数类型

描述

subject

String

消息标题,给邮箱订阅者发送邮件时作为邮件主题,长度不能超过512个字节。

message

String

发送的消息。消息体必须是UTF-8编码的字符串,大小至多256KB。如果订阅者是手机号码,长度不超过490个字符,超出部分系统自动截断。短信内容不能包含“[]”或者“【】”符号。

对于移动推送订阅者推送消息,message消息必须符合移动推送平台的消息格式,消息格式请参见application消息体格式。否则移动app无法收到消息,目前支持的平台有HMS、APNS、APNS_SANDBOX。

说明:

参数“message”、“message_structure”、“message_template_name”至少需要设置一个,如果同时设置,生效的优先级为:

message_structure > message_template_name > message。

message_structure

String

Json格式的字符串。支持“email”、“sms”、 “http”、“https”、“dms”、“functiongraph”、“functionstage”、“HMS”、“APNS”以及“APNS_SANDBOX”。其中,“HMS”、“APNS”以及“APNS_SANDBOX”三种消息的格式请参见application消息体格式。必须设置默认的消息“default”,当匹配不到消息协议时,按“default”中的内容发送。

说明:

参数“message”、“message_structure”、“message_template_name”至少需要设置一个,如果同时设置,生效的优先级为:

message_structure > message_template_name > message。

message_template_name

String

消息模板名称,可通过查询消息模板列表获取名称。

三种消息发送方式:

  • message
  • message_structure
  • message_template_name

三种方式至少需要设置其中一个,如果同时设置,生效的优先级为: message_structure > message_template_name > message。

tags

Map<String,String>

tag以及替换tag的参数组成的字典。消息模板中的标签对应的值。使用消息模板方式的消息发布必须携带该参数。字典中的key为消息模板中的参数名称,不超过21个字符。字典中的value为消息模板中的参数被替换后的值,不超过1KB。

time_to_live

String

指消息在SMN系统内部的最长存留时间。超过该存留时间,系统将不再发送该消息。单位是s,变量默认值是3600s,即一小时。值为正整数且小于等于3600*24。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

message_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

服务异常错误信息描述。

状态码: 429

表8 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

code

String

服务异常错误信息编码。

message

String

服务异常错误信息描述。

状态码: 500

表9 响应Body参数

参数

参数类型

描述

request_id

String

请求的唯一标识ID。

code

String

服务异常错误信息编码。

message

String

服务异常错误信息描述。

请求示例

  • 消息发布
    POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_create_topic_v2/publish
    
    {
      "subject" : "test message v2",
      "message" : "Message test message v2",
      "time_to_live" : "3600"
    }
  • 使用消息结构体方式的消息发布
    POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_create_topic_v2/publish
    
    {
      "subject" : "test message v2",
      "message_structure" : "{\n  \"default\": \"xxx\",\n  \"APNS\": \"{\\\"aps\\\":{\\\"alert\\\":{\\\"title\\\":\\\"xxx\\\",\\\"body\\\":\\\"xxx\\\"}}}\"\n}",
      "time_to_live" : "3600"
    }
  • 使用消息模板方式的消息发布
    POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/urn:smn:regionId:f96188c7ccaf4ffba0c9aa149ab2bd57:test_create_topic_v2/publish
    
    {
      "subject" : "test message template v2",
      "message_template_name" : "confirm_message",
      "time_to_live" : "3600",
      "tags" : {
        "topic_urn" : "topic_urn3331",
        "topic_id" : "topic_id3332"
      }
    }

响应示例

状态码: 200

OK

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

状态码

状态码

描述

200

OK

400

Bad Request

403

Unauthorized

404

Not Found

500

Internal Server Error

错误码

请参见错误码

分享:

    相关文档

    相关产品

close