看到一老兄用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元的代金券,可以用很久了。
祝各位能哄得女朋友开心
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。