
# 对接MSGSMS实现短信发送功能
#### 背景信息
消息\&短信 （Message\&SMS）是华为云携手全球多家优质运营商和渠道，为企业用户提供的通信服务。企业调用API或使用群发助手，即可使用验证码、通知短信服务。更多介绍，请参见[消息\&短信服务](https://support.huaweicloud.com/msgsms/index.html)。
在AstroZero中，通过应用与消息\&短信 （Message\&SMS）对接，可实现短信发送功能。
#### 场景描述
使用Message\&SMS给某用户发送条短信。
 #### 前提条件
- 已获取短信应用的APP_Key、APP_Secret、APP接入地址和上行短信接收地址。
  1. 在短信控制台的左侧导航栏中，选择"国内短信 \> 应用管理"。
  
  2. 在应用管理中，获取所需的值。
   
- 已获取短信模板的模板ID。
  1. 在短信控制台的左侧导航栏中，选择"国内短信 \> 模板管理"。
  
  2. 在模板管理中，获取所需的值。
   
- 已获取短信模板的签名名称、通道号。
  1. 在短信控制台的左侧导航栏中，选择"国内短信 \> 签名管理"。
  
  2. 在签名管理中，获取所需的值。
   
 
#### 创建消息\&短信连接器
1. 参考[创建连接器入口](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0653.html#astrozero_05_0653__section54416265268)中操作，进入创建连接器页面。
2. 在左侧列表中，选择"消息通知 \> 消息\&短信"，单击"+"。 
   图1创建消息\&短信连接器   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047476.png "点击放大")
   
   
3. 设置MSGSMS对接参数，单击"保存"。 
   - 标签：连接器的标签名，用于在页面展示。
   
   - 名称：连接器在系统中的唯一标识。
   
   - APP地址：短信APP接入地址，请与[前提条件]中的"APP接入地址"取值保持一致。
   
   - APP Key：APP Key和APP Secret是用户身份的唯一标识，调用短信业务API时需携带，用于认证鉴权。请与[前提条件]中的"APP_Key"取值保持一致。
   
   - App Secret：APP Key和APP Secret是用户身份的唯一标识，调用短信业务API时需携带，用于认证鉴权。请与[前提条件]中的"APP_Secret"取值保持一致。
   
   - APP回调地址：接收短信发送结果通知的回调地址。
   
   - 打包当前配置：默认为选中，对信息敏感的场景，建议不勾选。 选中该选项后，应用打包时会将当前配置的连接器信息一并打出。例如，如果应用包发布到运行环境，当前配置默认会被同步到运行环境中。
     
   
   
   
   
4. 创建短信模板。 
   短信模板是用户发送短信时使用的内容模板，由纯固定文本或固定文本加变量组成。使用短信模板前，需要在华为云的消息\&短信上创建短信模板，相关操作请参考[MSGSMS帮助文档](https://support.huaweicloud.com/usermanual-msgsms/sms_03_0003.html)。
   1. 在"模板"区域，单击"创建"。
   
   2. 配置页面参数，单击"确定"。
      图2创建模板参数配置   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960286605.png "点击放大")
      - 名称：模板的名称，和华为云的消息\&短信中模板名称保持一致。
      
      - 发送者：通道号。由华为分配，仅用于接口调用时填写，请与[前提条件]中的"通道号"取值保持一致。
      
      - 模板：模板ID，用于唯一标识短信模板。请与[前提条件]中的"模板ID"取值保持一致。
      
      - 模板参数：发送短信时携带的模板参数。
        - 变量格式为${1}、${2}、...、${20}，中间数字应代表变量在模板内容中的位置顺序。
        
        - 不允许设置局部变量，如www.${1}.cn、186${2}1234等。
         
      
      - 客户回调地址：用户收到短信后，回复短信，消息\&短信服务可以通过回调该地址，通知业务方用户回复的短信。请与[前提条件]中的"上行短信接收地址"取值保持一致
      
      - 签名：签名的名称，请与[前提条件]中的"签名名称"取值保持一致。
       
    
   
   
5. （可选）测试是否能发送短信。 
   1. 单击已创建的连接器，进入连接器详情页面。
   
   2. 在连接器列表中，单击需要测试连接器所在行的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047484.png)。
   
   3. 输入接收者号码和模板参数，单击"确定"。 接收者收到短信，表示测试成功。
      
   
   
   
   
 
#### 在脚本中调用连接器
在脚本中，调用已创建的连接器，实现与Message\&SMS的对接。
1. 参考[开发一个简单脚本实例](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_5031.html)中操作，创建一个空白脚本。
   
   图3新建空白脚本   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047492.png "点击放大")
   
   
2. 在脚本编辑器中，输入如下代码。 
   ```
   //导入该脚本所依赖的标准库文件。msgsms是系统预置的标准库。
   import * as sms from 'msgsms'; 
     
   @action.object({type: "method"}) 
   export class ActionDemo { 
        @action.method({ label: 'greeting something', description: 'greeting something.', input: 'ActionInput', output: 'ActionOutput' })     public greet(){ 
     
           console.log('`````````````````````test new sms`````````````````````') 
           let client = sms.newClient("MSGSMS_Test")
           let res = client.sendByName("Test1","130XXXXXXXX","[\"6612\"]") 
           console.log(res) 
           console.log('`````````````````````test new sms end`````````````````````') 
       } 
   }
   ```
   其中，sms.newClient("*MSGSMS_Test* ")中"*MSGSMS_Test* "为连接器的名称。client.sendByName("*Test1* ","*130XXXXXXXX* ","*\[\\"6612\\"\]*")中携带的是模板名称、接收者号码和模板参数。
   
   
3. 单击脚本编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047468.png)，保存脚本。
4. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126801.png)，运行脚本。
5. 在页面底部，单击测试窗口右上角的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126821.png)。
6. 检查接收者是否收到短信，收到短信表示成功调用连接器。
7. 单击编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126817.png)，启用脚本。
 
#### 在服务编排中调用连接器
在服务编排中，调用已创建的连接器，实现与MSGSMS的对接。
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，创建一个空白服务编排。
   
   图4添加服务编排   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126789.png "点击放大")
   
   
2. 在服务编排设计页面左侧，选择"连接器 \> 消息通知"，拖拽"MSGSMS"图元至画布中。 
   MSGSMS是系统预置的，与MSGSMS对接的接口。
   图5拖拽MSGSMS图元至画布中   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126805.png "点击放大")
   
   
3. 选中图元，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888060.png)，设置基本信息。
   
   图6设置基本信息   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126813.png "点击放大")
   - 标签：图元的标签名，用于在页面展示。
   
   - 名称：图元在系统中的唯一标识，不能和其他图元相同。
   
   - 连接器：该服务编排使用的连接器的名称。
   
   
   
   
4. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933047480.png)，设置动作参数。
   
   图7配置动作   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126777.png "点击放大")
   - 模板名称：短信模板的名称。
   
   - 模板参数：在"source"中，配置模板参数。
   
   - 接收者："target"设置为"to"，在"source"中配置接收者号码。
   
   
   
   
5. 连接开始和MSGSMS图元。 
   图8连接图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888072.png)
   
   
6. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932888064.png)，保存服务编排。
7. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960126809.png)，运行服务编排。
8. 单击"运行"，若接收者收到短信，表示成功调用连接器。
 
