文档首页> 消息通知服务 SMN> API参考> 应用示例> 示例2:使用消息模板方式发布消息
更新时间:2022-12-21 GMT+08:00

示例2:使用消息模板方式发布消息

操作场景

本章节指导用户通过API使用消息模板方式发布消息。API的调用方法请参见如何调用API

涉及接口

  • 获取用户Token:通过用户名/密码的方式进行认证来获取IAM用户Token。
  • 创建主题:创建Topic。
  • 订阅:为指定Topic添加订阅者。
  • 创建消息模板:创建一个模板,用户可以按照模板去发送消息,这样可以减少请求的数据量。
  • 消息发布:将消息发送给Topic的所有订阅终端。

操作步骤

  1. Token认证,具体操作请参考认证鉴权
  2. 创建Topic。
    1. 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics”。
    2. 在Request Header中增加“X-Auth-Token”。
    3. 在Request Body中传入如下参数。
      详细的参数说明请参见创建主题
      {
          "name": "publish_by_template", //Topic名称(必填String)
          "display_name": "test" , //显示名(非必填String)
          "enterprise_project_id": "0" //企业项目ID(企业项目场景下为必填String)
      }
      响应示例:
      {     
          "request_id": "a8f8161449564f569c19e2a9e3be25c9",     
          "topic_urn": "urn:smn:br-iaas-odin1:0605767e0a00d5762fe7c00d0e33345c:publish_by_template" 
      }
  3. 添加订阅。
    1. 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/subscriptions”。

      其中,topic_urn可在2.c的返回体中获取。

    2. 在Request Header中增加“X-Auth-Token”。
    3. 在Request Body中传入参数如下。
      {     
          "protocol": "sms", //订阅协议(必填String)     
          "endpoint": "86137****3629", //邮件地址(必填String)     
          "remark": "订阅终端" //备注(非必填String) 
      }

      响应示例:

      {
          "subscriptions_result":[{
              "request_id":"126c17f805934e5eadf647b0860c7a0a",
              "subscription_urn":"urn:smn:br-iaas-odin1:0605767e0a00d5762fe7c00d0e33345c:publish_by_template:3e5ac4544a1947b7b0d9f743fe52bdbd",
              "http_code":201}]
      }

      可为Topic添加多种以及多个订阅终端,支持的订阅协议请参考订阅。

    4. 订阅终端会收到一条确认订阅的消息,请在邮箱中进行确认订阅的操作。
  4. 创建消息模板。

    发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/message_template”。

  5. 在Request Header中增加“X-Auth-Token”。
    1. 在Request Body中传入参数如下:
      {
          "message_template_name": "sms_template_test", 
          "locale": "zh-cn",
          "content": "{content}", 
          "protocol": "sms"
      }

      响应示例:

      {
          "request_id": "e67228ac92324a58980e922ca600f8ef",
          "message_template_id": "cdb113996c5d49149fb97af36d9801ce"
      }
    1. 订阅终端会收到一条确认订阅的消息,请在手机中进行确认订阅的操作。
  6. 使用消息模板方式发布消息。
    1. 发送“POST https://{SMN_Endpoint}/v2/{project_id}/notifications/topics/{topic_urn}/publish”。
    2. 在Request Header中增加“X-Auth-Token”。
    3. 在Request Body中传入参数如下:
      {
          "message_template_name": "sms_template_test",
          "tags": {
      	"content": "hello test"
          },
          "subject": "template message test"
      }

      响应示例:

      {
      	"message_id": "5da965fd9e2c4036a0542317d944af83",
      	"request_id": "c6be4517f985470e8448e42f9d2ec5a2"
      }

      已完成3.c的确认订阅操作的订阅终端都能接收到该消息,否则无法接收消息。