当前位置: 首页 > news >正文

node.js实现阿里云短信发送

效果图

实现

一、准备工作

1、官网直达网址:

阿里云 - 短信服务

2、按照首页提示依次完成相应资质认证短信模板审核;

3、获取你的accessKeySecretaccessKeyId

方法如下:

获取AccessKey-阿里云帮助中心

4、获取SignName(签名名称)和 TemplateCode(模板code)

二、代码实现

1、项目结构

【/config/index.js】=》参数配置文件

【/server/index.js】=》主执行文件

【node server】=》启动命令

2、引入依赖

在项目根目录,打开控制台,输入如下命令:

npm install @alicloud/sms-sdk --save

3、 修改配置文件【/config/index.js】

储存前面获取的参数:

const config = {// AccessKey IDaccessKeyId: "XXXXXXXXXXXXXXXXXXXXXXXXXX",// AccessKey SecretsecretAccessKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",// 签名名称signName: "XXXX",// 模板CODE => 登录/注册 - 验证码templateCode_login: "SMS_4XXXXXXXX",}module.exports = config

4、修改主启动文件【/server/index.js】 

实现发送短信:

// 引入依赖
const SMSClient = require('@alicloud/sms-sdk')
// 参数配置文件
const config = require('../config/index.js')/*** 发送短信验证码* @param phone 接收用户的手机号*/
function sendSmsMessage (phone) {// 参数配置 sms_clientlet accessKeyId = config.accessKeyId // AccessKey IDlet secretAccessKey = config.secretAccessKey // AccessKey Secretlet signName = config.signName // 签名名称let templateCode = config.templateCode_login // 短信模板code// 发送对象及验证码let verify = Math.random().toString().slice(-6) // 随机6位验证码let phoneNum = phone // 手机号// 初始化 sms_clientconst smsClient = new SMSClient({accessKeyId, secretAccessKey})// 发送短信smsClient.sendSMS({PhoneNumbers: phoneNum, // 发送对象手机号SignName: signName, // 签名名称TemplateCode: templateCode, // 模版CODETemplateParam: `{"code":'${verify}'}`, // 短信模板变量对应的实际值,JSON格式}).then(res => {console.log("发送短信sendSmsMessage执行完成:")console.log(res)// 判断是否发送成功if(res.Code === 'OK') {console.log('短信发送成功!')} else {console.log('短信发送失败!')console.log(res.Message)}}).catch(err => {console.log("发送短信sendSmsMessage异常错误:")console.log(err)})
}sendSmsMessage('13512341234')

5、控制台打印结果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用3DUNet训练自己的数据集(pytorch)— 医疗影像分割
  • C# 特性(Attributes)和反射(Reflection)
  • 探索EasyCVR与AI技术深度融合:视频汇聚平台的新增长点
  • 匈牙利算法实现(from scipy.optimize import linear_sum_assignment)
  • 1-8 图像腐蚀 opencv树莓派4B 入门系列笔记
  • 2024国赛数学建模C题完整论文:农作物的种植策略
  • 在安卓和Windows下使用Vizario H264 RTSP
  • 计算机毕业设计选题推荐-动漫插画分享网站-Java/Python项目实战
  • Springboot工程配置https访问
  • 如何在SQL Server中恢复多个数据库?
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮
  • LIN总线CAPL函数—— 检查LIN报头的时间(ChkStart_LINHeaderToleranceViolation
  • redis为什么快
  • 系统找不到指定的文件怎么解决?
  • CSS学习10[重点]--浮动、浮动的效果以及内幕特性
  • dva中组件的懒加载
  • emacs初体验
  • ES10 特性的完整指南
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • happypack两次报错的问题
  • iOS | NSProxy
  • mysql中InnoDB引擎中页的概念
  • QQ浏览器x5内核的兼容性问题
  • SQLServer之创建显式事务
  • 测试开发系类之接口自动化测试
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 复杂数据处理
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 线性表及其算法(java实现)
  • 写代码的正确姿势
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • #java学习笔记(面向对象)----(未完结)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (CPU/GPU)粒子继承贴图颜色发射
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (备份) esp32 GPIO
  • (补充)IDEA项目结构
  • (第27天)Oracle 数据泵转换分区表
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (转)创业家杂志:UCWEB天使第一步
  • (转)平衡树
  • ***检测工具之RKHunter AIDE
  • **PHP二维数组遍历时同时赋值
  • .NET 8.0 发布到 IIS
  • .Net mvc总结
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @Autowired多个相同类型bean装配问题