🎉 push part done

This commit is contained in:
Song
2020-09-01 16:28:09 +08:00
parent 96265aac7a
commit b2d31d4d77
4 changed files with 50 additions and 0 deletions
+4
View File
@@ -6,9 +6,13 @@ const http = require("http");
require("dotenv").config();
const indexRouter = require("./routes");
const requestToken = require("./utils").requestToken;
const app = express();
requestToken(app);
setInterval(() => requestToken(app), 100 * 60 * 1000);
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
+1
View File
@@ -6,6 +6,7 @@
"start": "node ./app.js"
},
"dependencies": {
"axios": "^0.20.0",
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"dotenv": "^8.2.0",
+24
View File
@@ -1,6 +1,7 @@
const express = require("express");
const router = express.Router();
const crypto = require("crypto");
const axios = require("axios");
router.get("/", (req, res, next) => {
res.send("OK");
@@ -20,4 +21,27 @@ router.get("/verify", (req, res, next) => {
}
});
router.get("/push", (req, res, next) => {
// Reference: https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl
let content = req.query.content || req.body.content;
console.log(`Get content: ${content}`);
let access_token = req.app.access_token;
let request_data = {
touser: process.env.OPEN_ID,
template_id: process.env.TEMPLATE_ID,
};
request_data.data = { text: content };
axios
.post(
`https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=${access_token}`,
request_data
)
.then((response) => {
res.json(response.data);
})
.catch((error) => {
res.json(error);
});
});
module.exports = router;
+21
View File
@@ -0,0 +1,21 @@
const axios = require("axios");
module.exports = {
requestToken: function (app) {
let token = "";
axios
.get(
`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${process.env.APP_ID}&secret=${process.env.APP_SECRET}`
)
.then((res) => {
if (res.data && res.data.access_token) {
console.log("Get token: ", res.data.access_token);
token = res.data.access_token;
app.access_token = token;
} else {
console.error(res.data);
}
});
return token;
},
};