共计 1391 个字符,预计需要花费 4 分钟才能阅读完成。
短信服务
如果你购买了阿里云的短信服务,可以通过短信 API 实现验证码、推广短信、通知短信的发送、群发功能。
这里以验证码为例,介绍一下短信的发送功能。
快速学习
进入快速学习页面(https://dysms.console.aliyun….
直接点击查看 API Demo
你在左侧输入参数,选择不同的后端语言,它会自动帮你生成 Demo 代码,并且还可以去 CloudShell 在线调试。
参数说明
PhoneNumbers 接收短信的手机号码
SignName 签名名称,在控制台国内消息签名管理一列添加、查看
TemplateCode 模板 ID,在控制台国内消息模板管理一列添加、查看
TemplateParam 模板变量对应的实际值,注意一定要是 JSON 格式。
签名可以设置你的网站名、公司名
模板可以选择验证码、短信通知、推广短信(升级为企业后启用),设置你的短信内容,同时支持变量替换,如我的网站的验证码短信模板内容为:
您的验证码为:${code},该验证码 5 分钟内有效,请勿泄漏于他人。
TemplateParam 可以设置 code 变量,发送你需要的内容
"TemplateParam": JSON.stringify({"code": 2}),
短信发送客户端
根据 API Demo 的整理,我们写出自己的短信客户端代码
const Core = require('@alicloud/pop-core'); | |
const config = require('../config'); | |
const requestOption = {method: 'POST',}; | |
class SmsClient {constructor() {if (!SmsClient.instance) { | |
this.client = new Core({ | |
accessKeyId: config.sms.accessKeyId, | |
accessKeySecret: config.sms.accessKeySecret, | |
endpoint: config.sms.endpoint, | |
apiVersion: config.sms.apiVersion, | |
}); | |
SmsClient.instance = this.client; | |
} | |
} | |
sendSms(params) {this.client.request('SendSms', params, requestOption).then((result) => {console.log(JSON.stringify(result)); | |
}, (ex) => {console.log(ex); | |
}) | |
} | |
} | |
module.exports = new SmsClient(); |
编写单元测试
const smsClient = require('../../common/sms-client.js'); | |
describe('smsClient',async function() {it('sendSms', async function() { | |
const params = { | |
"PhoneNumbers": "手机号码", | |
"SignName": "签名", | |
"RegionId": "cn-hangzhou", | |
"TemplateCode": "模板 ID", | |
"TemplateParam": JSON.stringify({"code": 2}), | |
} | |
smsClient.sendSms(params); | |
}); | |
}); |
执行后,手机上成功收到了短信。
正文完
发表至: javascript
2019-10-26