Node.js是一种使用JavaScript语言编写的开源服务器运行环境,它具有高效、快速、轻量级和可扩展等特点。在实际应用中,Node.js可以帮助开发人员轻松地实现各种功能,包括发送短信。
在本文中,我们将详细介绍Node.js如何发送短信以及如何使用现有的短信服务来实现这一功能。
一、使用Node.js发送短信
1.安装依赖
首先,我们需要安装Node.js的官方模块之一--"twilio",可以通过npm来进行安装,执行以下命令:
npm install twilio
2.验证身份
在使用Twilio API发送短信之前,需要验证身份,获取Account SID和Auth Token,这两个参数可以在Twilio的控制台中找到。
3.编写发送短信的代码
我们使用Twilio API发送短信,在Node.js中的代码如下:
const accountSid = 'YOUR_ACCOUNT_SID'; const authToken = 'YOUR_AUTH_TOKEN'; const client = require('twilio')(accountSid, authToken); client.messages .create({ body: 'Hello from Node', from: '+1XXXXXXXXX', //在Twilio中您需要购买一个号码, to: '+1XXXXXXXXX' //作为from参数输入,to是您的接收短信的电话号码。 }) .then(message => console.log(message.sid));
执行上述代码后,在您的手机上将发送“Hello from Node”的短信。
二、使用现有的短信服务发送短信
如果您不想使用Twilio API,而是想使用一些已存在的短信服务来发送短信,那么下面是一些常见的短信服务供您选择:
1.腾讯云 短信服务
腾讯云短信API可通过HTTP/HTTPS协议调用,支持GET或POST请求,参数使用标准HTTP协议格式(如key1=value1&key2=value2),其中签名算法请参考腾讯云短信API文档。
示例代码如下:
const request = require('request'); const querystring = require('querystring'); const appid = 'YOUR_APPID'; const appkey = 'YOUR_APPKEY'; const nationCode = '86' //中国区电话号码前缀 const phoneNumber = 'XXXXXXXXX' //接受短信的手机号码 const templateId = 'XXXXXX' //短信模板ID const random = Math.floor(Math.random()*99999+1) //随机数 const curTime = Math.floor(new Date().getTime()/1000); //当前时间戳 const sig = querystring.escape(Buffer.from(`appkey=${appkey}&random=${random}&time=${curTime}&mobile=${nationCode}${phoneNumber}`, 'utf8').toString('base64')); const options = { url: 'https://yun.tim.qq.com/v5/tlssmssvr/sendsms', method: 'POST', headers: { 'Content-Type': 'application/json' }, json: true, body: { tel: { nationCode, mobile: phoneNumber }, tpl_id: templateId, params: [ random.toString(), '5' ], }, qs: { sdkappid: appid, random, time: curTime, sig, extend: '', ext: '' }, }; request(options, (error, response, body) => { if(error) { console.log(error); } else { console.log(body); } });
2.阿里云 短信服务
阿里云短信服务也可以通过HTTP/HTTPS协议调用,并且提供了Java、PHP、Python和Node.js等多种编程语言的SDK。
示例代码如下:
const Core = require('@alicloud/pop-core'); const client = new Core({ accessKeyId: '<YourAccessKeyId>', accessKeySecret: '<YourAccessKeySecret>', endpoint: 'https://dysmsapi.aliyuncs.com', apiVersion: '2017-05-25' }); const params = { "RegionId": "cn-hangzhou", "PhoneNumbers": "1500000000", "SignName": "阿里云短信测试专用", "TemplateCode": "SMS_71390007", "TemplateParam": "{\"code\":\"12345\"}" } const requestOption = { method: 'POST' }; client.request('SendSms', params, requestOption).then((result) => { console.log(result); }, (ex) => { console.log(ex); })
三、总结
通过本文的介绍,我们可以了解到Node.js如何发送短信,包括使用Twilio API以及使用腾讯云和阿里云等现有的短信服务。发送短信是我们开发中常用的功能之一,在实际应用中需要根据具体情况进行选择。
以上是nodejs 如何发短信的详细内容。更多信息请关注PHP中文网其他相关文章!