3

看到一老兄用php和阿里云短信服务做了一个每天给女朋友发短信的案例,挺有意思,自己也用nodejs做了一版。
https://segmentfault.com/a/11...
图片描述

步骤1

现在阿里云通信中的短信签名中申请签名,签名在你短信中是以:
【短信签名】你短信模板内容
方式为主的。
图片描述

步骤2

申请短信模板,短信模板的变量是以这种形式存在的:${name},可以写多个:
示例:尊敬的${name},您的快递已在飞奔的路上,将在今天${time}送达您的手里,请留意查收。
图片描述

步骤3

申请accesskeys,在你控制台上面有个accesskeys,点击申请就能显示你的id及Secret。
图片描述

步骤4

在demo文件夹中的index.js中填写你的accessKeyId和secretAccessKey,就是你在步骤3申请的id和secret。

步骤5

在sendSMS中填写
1、PhoneNumbers // 发送短信的账号,可以多写,用逗号分隔
2、SignName // 你步骤一申请的签名
3、TemplateCode // 你步骤2申请的模板code码
4、TemplateParam // 你步骤2中短信模板的变量名称要表达的含义

步骤6

定时执行任务node-schedule

      function scheduleCronstyle(){
        //秒 、 分 、时 、 日 、 月 、 年 
            schedule.scheduleJob('30 0 7 * * *', function(){
                console.log('scheduleCronstyle:' + new Date());
            }); 
        }
    scheduleCronstyle();

6个*分别代表了秒 、 分 、时 、 日 、 月 、 年 ,如上每天7点0分30秒的时候

步骤7

服务器上面pm2守护对应的nodejs进程即可。

全部代码

const SMSClient = require('./../index')

const schedule = require('node-schedule');

// ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
const accessKeyId = '你自己的id'
const secretAccessKey = '你自己的secret'

//初始化sms_client
let smsClient = new SMSClient({ accessKeyId, secretAccessKey })

// //短信回执报告
smsClient.receiveMsg(0, queueName).then(function (res) {
    //消息体需要base64解码
    let { code, body } = res
    if (code === 200) {
        //处理消息体,messagebody
        console.log(body)
    }
}, function (err) {
    console.log(err)
})

//短信上行报告
smsClient.receiveMsg(1, queueName).then(function (res) {
    //消息体需要base64解码
    let { code, body } = res
    if (code === 200) {
        //处理消息体,messagebody
        console.log(body)
    }
}, function (err) {
    console.log(err)
})


//查询短信发送详情
smsClient.queryDetail({
    PhoneNumber: '1500000000',
    SendDate: '20170731',
    PageSize: '10',
    CurrentPage: "1"
}).then(function (res) {
    let { Code, SmsSendDetailDTOs } = res
    if (Code === 'OK') {
        //处理发送详情内容
        console.log(SmsSendDetailDTOs)
    }
}, function (err) {
    //处理错误
    console.log(err)
})

const now = new Date(),
      jhr = new Date(2017, 4, 1),
      calculation = Math.abs(parseInt((jhr - now) / 86400000));

function scheduleCronstyle() {
    //秒 、 分 、时 、 日 、 月 、 年 
    schedule.scheduleJob('30 0 7 * * *', function () {
        // 发送短信
        smsClient.sendSMS({
            PhoneNumbers: '1888888888',
            SignName: '李经纶',
            TemplateCode: 'SMS_88960019',
            TemplateParam: '{"name":"刘颖","date":' + calculation + '}'
        }).then(function (res) {
            let { Code } = res
            if (Code === 'OK') {
                //处理返回参数
                console.log(res)
            }
        }, function (err) {
            console.log(err)
        })
    });
}

scheduleCronstyle();

全部代码在这里:https://github.com/chinalijin...

ps:
阿里云短信这个一进来会送10元的代金券,可以用很久了。
祝各位能哄得女朋友开心


前端中代码最骚的
258 声望1 粉丝