
# 通过SMN发布JSON消息
#### 操作场景
消息通知服务能够根据用户的需求，向订阅终端主动推送消息。消息通知服务支持发布JSON消息，可通过一次消息发布，向不同类型的订阅者发布不同内容的消息。
本章节以创建主题并发布JSON消息为例，指导您快速上手消息通知服务。
#### 操作视频
<video controls="controls" preload="none" id="object19735101122517" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/SMN/1703473841606601873.mp4" title="向主题发布JSON消息" poster="https://support.huaweicloud.com/qs-smn/zh-cn_image_0000002366861345.png" height="340.0000" width="600.0000"></video>
#### 操作流程
| 操作步骤                                         | 说明                                                                                                                                                                                                                                                                         |
|:---|:---|
| [准备工作]      | 注册华为账号并开通华为云，实名认证，为账户充值。                                                                                                                                                                                                                                                   |
| [步骤一：创建主题]   | 创建一个主题"Mytopic"。                                                                                                                                                                                                                                                           |
| [步骤二：添加订阅]   | 为主题"Mytopic"添加协议类型为"短信"和"邮件"的订阅。                                                                                                                                                                                                                                           |
| [步骤三：发布消息] | - 向"短信"类型的订阅者发布消息"Dear Sir or Madam, this is an SMS message."。  - 向"邮件"类型的订阅者发布消息"Dear Sir or Madam, this is an Email message."。   |
| [步骤四：接收消息]  | 订阅终端接收消息。                                                                                                                                                                                                                                                                  |
   
 #### 准备工作
1. 注册账号并实名认证。 在使用消息通知服务之前，请先[注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-account/account_id_001.html)、[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0071343161.html)。
   如果您已开通华为云并进行实名认证，请忽略此步骤。
   
2. 为账户充值。 请保证账户有足够金额。具体操作，请参见[账户充值](https://support.huaweicloud.com/usermanual-billing/bills-topic_30000002.html)。
   
 
 #### 步骤一：创建主题
1. 进入[创建主题](https://console.huaweicloud.com/smn/?locale=zh-cn#/topics/create)页面。
2. 配置主题参数。 本示例中仅解释必要参数，其余大多数配置可保留默认值。关于配置参数的详细说明请参见[创建主题](https://support.huaweicloud.com/usermanual-smn/zh-cn_topic_0043961401.html)。
   图1创建主题参数配置   
   ![](https://support.huaweicloud.com/qs-smn/zh-cn_image_0000002510688814.png "点击放大")
   表1创建主题参数设置说明 
   | 参数   | 示例          | 说明                            |
   |:---|:---|:---|
   | 主题名称 | **Mytopic** | 输入创建的主题名称。                    |
   | 企业项目 | **default** | 该参数仅对开通企业项目的企业客户账号显示，不显示时请忽略。 |
      
   
3. 单击"确定"，主题创建成功。 主题创建成功后，系统会自动生成主题URN，主题URN是主题的唯一资源标识，不可修改。新创建的主题将显示在主题列表中。
   
 
 #### 步骤二：添加订阅
分别为主题"Mytopic"添加协议类型为"短信"和"邮件"的订阅。
- [添加协议类型为"短信"的订阅]
  1. 在主题列表中，单击"Mytopic"主题右侧的"添加订阅"。
  
  2. 配置订阅参数。 本示例仅解释必要参数，其余大多数配置可保留默认值。关于配置参数的详细说明，请参见[添加订阅](https://support.huaweicloud.com/usermanual-smn/smn_ug_0008.html)。
     图2添加订阅配置参数   
     ![](https://support.huaweicloud.com/qs-smn/zh-cn_image_0000002510692980.png "点击放大")
     表2添加订阅参数设置说明 
     | 参数   | 示例                 | 说明                                                                                                                                                                                                                                                  |
     |:---|:---|:---|
     | 主题名称 | **Mytopic**        | 已选择的需要添加订阅的主题名称，不可修改。                                                                                                                                                                                                                               |
     | 协议   | **短信**             | 在"协议"下拉框中，选择订阅终端支持的协议"短信"。 更多支持的协议类型，请参见[消息通知服务支持的传输协议有哪些？](https://support.huaweicloud.com/smn_faq/smn_faq_0003.html)                                                                                                    |
     | 添加方式 | **新建订阅**           | 创建新的订阅。                                                                                                                                                                                                                                             |
     | 订阅终端 | **+8618612345678** | 在"订阅终端"输入框中输入有效的手机号码。 - 批量添加时，每个终端地址占一行，最多可输入10个终端。  - 消息通知服务不会校验订阅终端是否真实存在。   |
        
     
  
  3. 单击"确定"，完成协议类型为"短信"的订阅的添加。 完成订阅添加后，您添加的订阅终端会收到订阅确认的通知，接收端需要在订阅终端上单击订阅确认链接，确认同意接收主题发布的消息。此时SMN页面可以看到对应订阅状态为已确认。
     
   
- [添加协议类型为"邮件"的订阅]
  1. 在主题列表中，单击"Mytopic"主题右侧的"添加订阅"。
  
  2. 配置订阅参数。 本示例仅解释必要参数，其余大多数配置可保留默认值。关于配置参数的详细说明，请参见[添加订阅](https://support.huaweicloud.com/usermanual-smn/smn_ug_0008.html)。
     图3添加订阅配置参数   
     ![](https://support.huaweicloud.com/qs-smn/zh-cn_image_0000002510775780.png "点击放大")
     表3添加订阅参数设置说明 
     | 参数   | 示例                       | 说明                                                                                                                                                                                                                                            |
     |:---|:---|:---|
     | 主题名称 | **Mytopic**              | 已选择的需要添加订阅的主题名称，不可修改。                                                                                                                                                                                                                         |
     | 协议   | **邮件**                   | 在"协议"下拉框中，选择订阅终端支持的协议"邮件"。 更多支持的协议类型，请参见[消息通知服务支持的传输协议有哪些？](https://support.huaweicloud.com/smn_faq/smn_faq_0003.html)                                                                                               |
     | 添加方式 | **新建订阅**                 | 创建新的订阅。                                                                                                                                                                                                                                       |
     | 订阅终端 | **username@example.com** | 在"订阅终端"输入框中输入有效的邮箱地址。 - 批量添加时，每个终端地址占一行，最多可输入10个终端。  - 消息通知服务不会校验订阅终端是否真实存在。   |
        
     
  
  3. 单击"确定"，完成协议类型为"邮件"的订阅的添加。 完成订阅添加后，您添加的订阅终端会收到订阅确认的通知，接收端需要在订阅终端上单击订阅确认链接，确认同意接收主题发布的消息。此时SMN页面可以看到对应订阅状态为已确认。
     
   
 #### 步骤三：发布消息
1. 在主题列表中，单击"Mytopic"主题右侧"操作"列的"发布消息"。
2. 配置发布消息参数。 本示例中仅解释必要参数，其余大多数配置可保留默认值。关于配置参数的详细说明请参见[向主题发布JSON消息](https://support.huaweicloud.com/usermanual-smn/zh-cn_topic_0044170767.html)。
   图4发布消息配置参数   
   ![](https://support.huaweicloud.com/qs-smn/zh-cn_image_0000001993627762.png "点击放大")
   表4发布消息参数设置说明 
   | 参数   | 示例                                                                                                                                                                                   | 说明                                                                                                                                                                     |
   |:---|:---|:---|
   | 主题名称 | **Mytopic**                                                                                                                                                                          | 已选择需要发布消息的主题名称，不可修改。                                                                                                                                                   |
   | 消息类型 | **JSON消息**                                                                                                                                                                           | 按JSON格式发送的消息。                                                                                                                                                          |
   | 消息内容 | ``` { "default": "Dear Sir or Madam, this is a default message.", "sms": "Dear Sir or Madam, this is an SMS message.", "email": "Dear Sir or Madam, this is an Email message." } ``` | 在消息内容输入框中手动输入JSON格式的消息，或通过单击"生成JSON消息"自动生成消息。 JSON格式的消息描述，请参见[JSON格式消息说明](https://support.huaweicloud.com/usermanual-smn/smn_ug_a1000.html)。 |
      
   
3. 单击"确定"，消息将推送至不同的订阅终端。 各个终端接收到的消息内容说明请参考"[不同协议消息说明](https://support.huaweicloud.com/usermanual-smn/smn_ug_a3000.html)"部分。
   
 
 #### 步骤四：接收消息
在订阅主题时，选择不同的订阅协议，订阅终端接收到的信息不同。
- 短信协议 订阅终端为手机，接收到的消息只包含消息内容。
  
- 邮件协议 订阅终端为邮箱，接收到的消息包含消息内容和取消订阅的链接。
  
 
