对接MSGSMS实现短信发送功能
背景信息
消息&短信 (Message&SMS)是华为云携手全球多家优质运营商和渠道,为企业用户提供的通信服务。企业调用API或使用群发助手,即可使用验证码、通知短信服务。更多介绍,请参见消息&短信服务。
在AstroZero中,通过应用与消息&短信 (Message&SMS)对接,可实现短信发送功能。
场景描述
使用Message&SMS给某用户发送条短信。
前提条件
- 已获取短信应用的APP_Key、APP_Secret、APP接入地址和上行短信接收地址。
- 登录短信控制台。
- 在左侧导航栏中,选择“国内短信 > 应用管理”。
- 在应用管理中,获取所需的值。
- 已获取短信模板的模板ID。
- 登录短信控制台。
- 在左侧导航栏中,选择“国内短信 > 模板管理”。
- 在模板管理中,获取所需的值。
- 已获取短信模板的签名名称、通道号。
- 登录短信控制台。
- 在左侧导航栏中,选择“国内短信 > 签名管理”。
- 在签名管理中,获取所需的值。
创建消息&短信连接器
- 参考创建连接器入口中操作,进入创建连接器页面。
- 在左侧列表中,选择“消息通知 > 消息&短信”,单击“+”。
图1 创建消息&短信连接器
- 设置MSGSMS对接参数,单击“保存”。
- 标签:连接器的标签名,用于在页面展示。
- 名称:连接器在系统中的唯一标识。
- APP地址:短信APP接入地址,请与前提条件中的“APP接入地址”取值保持一致。
- APP Key:APP Key和APP Secret是用户身份的唯一标识,调用短信业务API时需携带,用于认证鉴权。请与前提条件中的“APP_Key”取值保持一致。
- App Secret:APP Key和APP Secret是用户身份的唯一标识,调用短信业务API时需携带,用于认证鉴权。请与前提条件中的“APP_Secret”取值保持一致。
- APP回调地址:接收短信发送结果通知的回调地址。
- 打包当前配置:默认为选中,对信息敏感的场景,建议不勾选。
选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。
- 创建短信模板。
短信模板是用户发送短信时使用的内容模板,由纯固定文本或固定文本加变量组成。使用短信模板前,需要在华为云的消息&短信上创建短信模板,相关操作请参考MSGSMS帮助文档。
- 在“模板”区域,单击“创建”。
- 配置页面参数,单击“确定”。
图2 创建模板参数配置
- 名称:模板的名称,和华为云的消息&短信中模板名称保持一致。
- 发送者:通道号。由华为分配,仅用于接口调用时填写,请与前提条件中的“通道号”取值保持一致。
- 模板:模板ID,用于唯一标识短信模板。请与前提条件中的“模板ID”取值保持一致。
- 模板参数:发送短信时携带的模板参数。
- 变量格式为${1}、${2}、...、${20},中间数字应代表变量在模板内容中的位置顺序。
- 不允许设置局部变量,如www.${1}.cn、186${2}1234等。
- 客户回调地址:用户收到短信后,回复短信,消息&短信服务可以通过回调该地址,通知业务方用户回复的短信。请与前提条件中的“上行短信接收地址”取值保持一致。
国际、港澳台短信,暂不支持上行短信功能。
- 签名:签名的名称,请与前提条件中的“签名名称”取值保持一致。
- (可选)测试是否能发送短信。
在脚本中调用连接器
在脚本中,调用已创建的连接器,实现与Message&SMS的对接。
- 参考开发一个简单脚本实例中操作,创建一个空白脚本。
图3 新建空白脚本
- 在脚本编辑器中,输入如下代码。
//导入该脚本所依赖的标准库文件。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\"]")中携带的是模板名称、接收者号码和模板参数。
- 单击脚本编辑器页面上方的,保存脚本。
- 保存成功后,单击,运行脚本。
- 在页面底部,单击测试窗口右上角的。
- 检查接收者是否收到短信,收到短信表示成功调用连接器。
- 单击编辑器页面上方的,启用脚本。
在服务编排中调用连接器
在服务编排中,调用已创建的连接器,实现与MSGSMS的对接。
- 参考如何开发服务编排中操作,创建一个空白服务编排。
图4 添加服务编排
- 在服务编排设计页面左侧,选择“连接器 > 消息通知”,拖拽“MSGSMS”图元至画布中。
MSGSMS是系统预置的,与MSGSMS对接的接口。图5 拖拽MSGSMS图元至画布中
- 选中图元,单击,设置基本信息。
图6 设置基本信息
- 标签:图元的标签名,用于在页面展示。
- 名称:图元在系统中的唯一标识,不能和其他图元相同。
- 连接器:该服务编排使用的连接器的名称。
- 单击,设置动作参数。
图7 配置动作
- 模板名称:短信模板的名称。
- 模板参数:在“source”中,配置模板参数。
- 接收者:“target”设置为“to”,在“source”中配置接收者号码。
- 连接开始和MSGSMS图元。
图8 连接图元
- 单击页面上方的,保存服务编排。
- 保存成功后,单击,运行服务编排。
- 单击“运行”,若接收者收到短信,表示成功调用连接器。