nodejs实现腾讯云短信发送提醒

nodejs实现腾讯云短信发送提醒

月光魔力鸭

2018-09-19 14:17 阅读 1864 喜欢 4 短信提醒 nodejs调用sms 腾讯云短信

Ps: 刚收到邮件,免费的短信已经在2019年8月31日下线了。

免费短信100条活动下线

在我们做运维或者小工具的时候,总会有些需要提醒的事情,比如服务器宕机或者天气提醒,但是发email又会不够及时或者可能会忽略,那么短信就是一个不错的选择了。

当然,短信是收费的,如果量比较大的话,肯定是需要收费的,如果只是少量的话,那么各大云平台还是有一些免费额度的,我目前采用的是腾讯云的短信平台,每个月有100条免费短信,对于我个人来说已经足够使用了。

下面,我简单说下如何使用这个免费的100条短信,具体是通过nodejs实现短信提醒。

注册

首先,登录腾讯云,帐号肯定都有啦,直接QQ登录即可。

控制台-短信

然后,进入控制台,找到"云产品--> 移动通信--> 短信" ,进入该产品页面。 如下:

短信控制台

创建应用

在短信控制台中创建一个自己的应用,然后进入该应用,找到“国内短信”下的“短信内容配置”,如下:

短信内容配置

发现,在短信内容配置下有两个tab 短信签名和短信正文,如果我们要使用腾讯云的短信服务,那么短信签名和正文是必不可少的。

签名+正文

在短信内容配置页面,进行签名和正文的创建,根据页面提示即可,不过签名和正文是需要审核的,一般来说1天-2天左右就会审核通过。(注意:短信正文如果超过70个字会分为两条短信发送的,请一定要注意短信内容长度,包含签名。)

通过nodejs调用短信服务

当我们的应用、签名、正文都创建完成后,可以根据腾讯云提供的SDK进行短信服务的开发了。SDK支持多种语音,包括java php python c# node.js ,下面我们简单说下关于node.js的使用,当然直接阅读文档也是可以的,而且我下面的使用也很简单,只是针对普通国内短信的使用,其他的包括语音、回执等都没有涉及到。

附上SDK的地址:https://cloud.tencent.com/document/product/382/3772

附上我的短信服务工具的目录:

项目目录

其中,congfig.json存放自己的APPID、密钥、签名等信息。index.js为应用服务器,sms.js为短信发送工具类。

config.json
{
    "appid":"自己的APPID",
    "appkey":"自己的APPKEY",
    "smssign":"短信签名"
}

以上几个信息都可以在短信应用中找到,如下:

appid和key

index.js
//自己使用的短信服务,提供给各个应用来调用。要求:外网无法访问,不然就死了。

//提供web服务,同时提供接口,可通过调用发送,只支持自己的哦。
var express = require('express');

var app = express();
var bodyParser = require('body-parser');

app.use(bodyParser.json());

var sms = require('./sms');

app.post('/sms',function(req,res,next){
    //1.提供模版ID
    var phone = req.body.phone,templateId = req.body.templateId,params = req.body.params.split('_');
    sms(phone,templateId,params).then(function(){
        res.json({success : true,msg : '成功'})
    }).catch(function(err){
        res.json({success : false,msg : '失败'})
    })
})


app.listen(2500,function(){
    console.log('短信服务启动,端口:2500')
})

一个简单的web服务,提供给其他的项目或者工具进行调用,当然,肯定是只能内网访问的,不然的话,别人找到就给用光了,哈哈。

sms.js
//数据读取json
var config = require('./config');
//短信发送工具类
module.exports = function (phoneNumber,templateId,params){
    var QcloudSms = require("qcloudsms_js");
    // 实例化QcloudSms
    var qcloudsms = QcloudSms(config.appid, config.appkey);
    var smsType = 0; 
    var ssender = qcloudsms.SmsSingleSender();
    return new Promise(function(resolve,reject){
        console.log('短信接受号码:'+phoneNumber);
        console.log('模版ID:'+templateId);
        console.log('模版变量:'+params);
        ssender.sendWithParam(86, phoneNumber.split(','), templateId,params, config.smssign, "", "", function(err,res,resData){
            if (err) {
                reject();//发送失败
            } else {
                //所有短信全部认定发送成功
                console.log(resData);
                resolve(true);
            }
        });
    });
}

里面的module qcloudsms_js是腾讯云提供的短信模块,直接调用即可。我这里只是简单实现了发送单个号码的短信,多个的可以按照API文档上继续实现,我这算是抛砖引玉了。

结束

以上,就是我通过nodejs调用腾讯云sms短信服务器的过程,个人只是用来提醒天气内容了,不然申请了每个月100条放着也是放着,不用就白瞎啦。

转载请注明出处: https://chrunlee.cn/article/sms-nodejs-impl.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
在通过axios读取页面的时候,经常会碰到gbk的编码,如果不进行转化的话,在获取信息或读取上都会很麻烦。
最近由于系统需要一些数据进行测试,但是正常的流程都是下载pdf ,打印pdf,然后通过涂写答题卡,将涂写的扫描上传..太麻烦了,想做成简单点,通过程序直接生成..卡在了pdf转图片上,今天抽空找了下库,通过gm可以将pdf转为图片,起码第一步已经实现了,后边的涂学号之前已经做过了。
使用nodejs 连接mysql数据库还是很简单的,有现成的模块可以直接调用。下面介绍下 mysql 的调用
最近家里正在装修,实在是不知道怎么做,之前看好好住APP上有不少设计的图,部分还挺好看。。就去看了下有没有WEB端,结果还真有,就有了下文,我抓了几万张图片,然后根据关键字进行分类,从里面找心仪的设计。
之前在知乎上有看到,基本上都是一致的,这里提供一个nodejs版本的针对微信内dat文件进行处理恢复为图片的方法。
互联网应用经常需要存储用户上传的图片,比如facebook相册。 facebook目前存储了2600亿张照片,总大小为20PB,每张照片约为80KB。用户每周新增照片数量为10亿。(总大小60TB),平均每秒新增3500张照片(3500次写请求),读操作峰值可以达到每秒百万次
这事其实很简单,就是调用adb几个命令而已.. 主要是有时候想用的时候总感觉差点啥,东拼西凑才弄出来,这里记录下,哪怕就是贴个地址的,也比记在脑子里强。
也不知道咋回事 ... 哈哈,忽然想研究下磁力网站,其实并不是很想懂里面的原理,只是搞不明白他们的资源是从哪里来的..很是纳闷?