🎉 push part done
This commit is contained in:
@@ -6,9 +6,13 @@ const http = require("http");
|
|||||||
require("dotenv").config();
|
require("dotenv").config();
|
||||||
|
|
||||||
const indexRouter = require("./routes");
|
const indexRouter = require("./routes");
|
||||||
|
const requestToken = require("./utils").requestToken;
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
requestToken(app);
|
||||||
|
setInterval(() => requestToken(app), 100 * 60 * 1000);
|
||||||
|
|
||||||
app.use(logger("dev"));
|
app.use(logger("dev"));
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(express.urlencoded({ extended: false }));
|
app.use(express.urlencoded({ extended: false }));
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"start": "node ./app.js"
|
"start": "node ./app.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"axios": "^0.20.0",
|
||||||
"cookie-parser": "~1.4.4",
|
"cookie-parser": "~1.4.4",
|
||||||
"debug": "~2.6.9",
|
"debug": "~2.6.9",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
const express = require("express");
|
const express = require("express");
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const crypto = require("crypto");
|
const crypto = require("crypto");
|
||||||
|
const axios = require("axios");
|
||||||
|
|
||||||
router.get("/", (req, res, next) => {
|
router.get("/", (req, res, next) => {
|
||||||
res.send("OK");
|
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;
|
module.exports = router;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
},
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user