首页 > web前端 > 前端问答 > nodejs 如何发短信

nodejs 如何发短信

王林
发布: 2023-05-08 16:08:38
原创
1196 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板