Skip to content

Commit ff0130e

Browse files
authored
Merge pull request #354 from JemyCheung/sms
Sms
2 parents 5c3f9c4 + 3266c94 commit ff0130e

File tree

3 files changed

+161
-1
lines changed

3 files changed

+161
-1
lines changed

examples/sms.js

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
const qiniu = require('../index.js');
2+
const proc = require('process');
3+
const should = require('should');
4+
const assert = require('assert');
5+
6+
// eslint-disable-next-line no-undef
7+
before(function(done) {
8+
if (!process.env.QINIU_ACCESS_KEY || !process.env.QINIU_SECRET_KEY) {
9+
console.log('should run command `source test-env.sh` first\n');
10+
process.exit(0);
11+
}
12+
done();
13+
});
14+
15+
// message
16+
describe('test Message', function() {
17+
var accessKey = proc.env.QINIU_ACCESS_KEY;
18+
var secretKey = proc.env.QINIU_SECRET_KEY;
19+
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
20+
// eslint-disable-next-line no-undef
21+
describe('test sendMessage', function() {
22+
// eslint-disable-next-line no-undef
23+
it('test sendMessage', function(done) {
24+
var num = new Array("17321129884","18120582893");
25+
var reqBody = {
26+
"template_id": "1199572412090290176",
27+
"mobiles": num,
28+
"parameters": {
29+
"prize": "3333",
30+
"name": "sendMessage",
31+
"time": "1238"
32+
}
33+
};
34+
qiniu.sms.message.sendMessage(reqBody, mac, function(respErr, respBody,
35+
respInfo) {
36+
should.not.exist(respErr);
37+
assert.strictEqual(respInfo.statusCode, 200);
38+
done();
39+
});
40+
});
41+
});
42+
describe('test sendSingleMessage', function() {
43+
it('test sendSingleMessage', function(done) {
44+
var reqBody = {
45+
"template_id": "1199572412090290176",
46+
"mobile": "17321129884",
47+
"parameters": {
48+
"prize": "3333",
49+
"name": "sendSingleMessage",
50+
"time": "1238"
51+
}
52+
};
53+
qiniu.sms.message.sendSingleMessage(reqBody, mac, function(respErr, respBody,
54+
respInfo) {
55+
should.not.exist(respErr);
56+
assert.strictEqual(respInfo.statusCode, 200);
57+
done();
58+
});
59+
});
60+
});
61+
describe('test sendOverseaMessage', function() {
62+
it('test sendOverseaMessage', function(done) {
63+
var reqBody = {
64+
"template_id": "1199572412090290176",
65+
"mobile": "17321129884",
66+
"parameters": {
67+
"prize": "3333",
68+
"name": "1111",
69+
"time": "1238"
70+
}
71+
};
72+
qiniu.sms.message.sendOverseaMessage(reqBody, mac, function(respErr, respBody,
73+
respInfo) {
74+
should.not.exist(respErr);
75+
assert.strictEqual(respInfo.statusCode, 200);
76+
done();
77+
});
78+
});
79+
});
80+
describe('test sendFulltextMessage', function() {
81+
it('test sendFulltextMessage', function(done) {
82+
var num = new Array("17321129884","18120582893");
83+
var reqBody = {
84+
"mobiles": num,
85+
"content": "【七牛云-测试】您的验证码为1121,该验证码5分钟内有效",
86+
"template_type": "verification"
87+
};
88+
qiniu.sms.message.sendFulltextMessage(reqBody, mac, function(respErr, respBody,
89+
respInfo) {
90+
if(respErr!=null){
91+
console.log(respErr);
92+
}
93+
should.not.exist(respErr);
94+
assert.strictEqual(respInfo.statusCode, 200);
95+
done();
96+
});
97+
});
98+
});
99+
});

index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,8 @@ module.exports = {
1313
zone: require('./qiniu/zone.js'),
1414
app: require('./qiniu/rtc/app.js'),
1515
room: require('./qiniu/rtc/room.js'),
16-
Credentials: require('./qiniu/rtc/credentials.js')
16+
Credentials: require('./qiniu/rtc/credentials.js'),
17+
sms: {
18+
message: require('./qiniu/sms/message.js'),
19+
}
1720
};

qiniu/sms/message.js

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
const util = require('../util');
2+
const urllib = require('urllib');
3+
exports.sendMessage = function (reqBody,mac,callbackFunc){
4+
reqBody = JSON.stringify(reqBody);
5+
var args = {
6+
requestURI:"https://sms.qiniuapi.com/v1/message",
7+
reqBody:reqBody,
8+
mac:mac,
9+
}
10+
post(args,callbackFunc);
11+
}
12+
13+
exports.sendSingleMessage = function (reqBody,mac,callbackFunc){
14+
reqBody = JSON.stringify(reqBody);
15+
var args = {
16+
requestURI:"https://sms.qiniuapi.com/v1/message/single",
17+
reqBody:reqBody,
18+
mac:mac,
19+
}
20+
post(args,callbackFunc);
21+
}
22+
23+
exports.sendOverseaMessage = function (reqBody,mac,callbackFunc){
24+
reqBody = JSON.stringify(reqBody);
25+
var args = {
26+
requestURI:"https://sms.qiniuapi.com/v1/message/oversea",
27+
reqBody:reqBody,
28+
mac:mac,
29+
}
30+
post(args,callbackFunc);
31+
}
32+
33+
exports.sendFulltextMessage = function (reqBody,mac,callbackFunc){
34+
reqBody = JSON.stringify(reqBody);
35+
var args = {
36+
requestURI:"https://sms.qiniuapi.com/v1/message/fulltext",
37+
reqBody:reqBody,
38+
mac:mac,
39+
}
40+
post(args,callbackFunc);
41+
}
42+
43+
function post(args,callbackFunc){
44+
var contentType = 'application/json';
45+
var accessToken = util.generateAccessTokenV2(args.mac, args.requestURI, 'POST', contentType, args.reqBody);
46+
var headers = {
47+
'Authorization': accessToken,
48+
'Content-Type': contentType,
49+
}
50+
51+
var data = {
52+
method: 'POST',
53+
headers: headers,
54+
data: args.reqBody,
55+
}
56+
57+
urllib.request(args.requestURI, data, callbackFunc);
58+
}

0 commit comments

Comments
 (0)