阿里云部署 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)