add 企业微信机器人通知

This commit is contained in:
Rookie_Zoe
2020-12-22 20:35:43 +08:00
parent 2cb8bc1e54
commit 04687ac473
6 changed files with 60 additions and 1 deletions

View File

@ -37,6 +37,7 @@ jobs:
if [ $TG_USER_ID ]; then sed -i "/variables/a\ TG_USER_ID: $TG_USER_ID" serverless.yml; fi;
if [ $DD_BOT_TOKEN ]; then sed -i "/variables/a\ DD_BOT_TOKEN: $DD_BOT_TOKEN" serverless.yml; fi;
if [ $DD_BOT_SECRET ]; then sed -i "/variables/a\ DD_BOT_SECRET: $DD_BOT_SECRET" serverless.yml; fi;
if [ $QYWX_KEY ]; then sed -i "/variables/a\ QYWX_KEY: $QYWX_KEY" serverless.yml; fi;
if [ $IGOT_PUSH_KEY ]; then sed -i "/variables/a\ IGOT_PUSH_KEY: $IGOT_PUSH_KEY" serverless.yml; fi;
if [ $QQ_SKEY ]; then sed -i "/variables/a\ QQ_SKEY: $QQ_SKEY" serverless.yml; fi;
if [ $QQ_MODE ]; then sed -i "/variables/a\ QQ_MODE: $QQ_MODE" serverless.yml; fi;
@ -84,6 +85,7 @@ jobs:
TG_USER_ID: ${{ secrets.TG_USER_ID}}
DD_BOT_TOKEN: ${{ secrets.DD_BOT_TOKEN}}
DD_BOT_SECRET: ${{ secrets.DD_BOT_SECRET}}
QYWX_KEY: ${{ secrets.QYWX_KEY}}
IGOT_PUSH_KEY: ${{ secrets.IGOT_PUSH_KEY}}
QQ_SKEY: ${{ secrets.QQ_SKEY}}
QQ_MODE: ${{ secrets.QQ_MODE}}

View File

@ -28,6 +28,8 @@ jd_scripts:
#钉钉机器人通知
- DD_BOT_TOKEN=
- DD_BOT_SECRET=
#企业微信机器人通知
- QYWX_KEY=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场

View File

@ -28,6 +28,8 @@ jd_scripts:
#钉钉机器人通知
- DD_BOT_TOKEN=
- DD_BOT_SECRET=
#企业微信机器人通知
- QYWX_KEY=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场

View File

@ -27,6 +27,8 @@ jd_scripts:
#钉钉机器人通知
- DD_BOT_TOKEN=
- DD_BOT_SECRET=
#企业微信机器人通知
- QYWX_KEY=
#京东种豆得豆
- PLANT_BEAN_SHARECODES=
#京东农场
@ -50,4 +52,3 @@ jd_scripts:
#并不是所有的脚本都会被启用延迟因为有一些脚本需要整点触发。延迟的目的有两个1是降低抢占cpu资源几率2是降低检查风险主要是1
#填写数字,单位为秒,比如写为 RANDOM_DELAY_MAX=30 就是随机产生0到29之间的一个秒数执行延迟的意思。
- RANDOM_DELAY_MAX=

View File

@ -89,6 +89,7 @@
| `TG_USER_ID` | telegram推送 | 非必须 | tg推送,填写[@getuseridbot](https://t.me/getuseridbot)中获取到的纯数字ID, [具体教程](./backUp/TG_PUSH.md) |
| `DD_BOT_TOKEN` | 钉钉推送 | 非必须 | 钉钉推送[官方文档](https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq) ,只需`https://oapi.dingtalk.com/robot/send?access_token=XXX` 等于`=`符号后面的XXX即可 |
| `DD_BOT_SECRET` | 钉钉推送 | 非必须 | 密钥机器人安全设置页面加签一栏下面显示的SEC开头的`SECXXXXXXXXXX`等字符 , 注:钉钉机器人安全设置只需勾选`加签`即可,其他选项不要勾选,再不懂看 [这个图](icon/DD_bot.png) |
| `QYWX_KEY` | 企业微信推送 | 非必须 | 密钥,企业微信推送 webhook 后面的 key |
| `IGOT_PUSH_KEY` | iGot推送 | 非必须 | iGot聚合推送支持多方式推送确保消息可达。 [参考文档](https://wahao.github.io/Bark-MP-helper ) |
| `QQ_SKEY` | 酷推(Cool Push)推送 | 非必须 | 推送所需的Skey,登录后获取Skey [参考文档](https://cp.xuthus.cc/) |
| `QQ_MODE` | 酷推(Cool Push)推送 | 非必须 | 推送方式(send或group或者wx默认send) [参考文档](https://cp.xuthus.cc/) |

View File

@ -43,6 +43,11 @@ let DD_BOT_TOKEN = '';
//密钥机器人安全设置页面加签一栏下面显示的SEC开头的字符串
let DD_BOT_SECRET = '';
// =======================================企业微信机器人通知设置区域===========================================
//此处填你企业微信机器人的 webhook例如693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa
//注此处设置github action用户填写到Settings-Secrets里面(Name输入QYWX_KEY)
let QYWX_KEY = '';
// =======================================iGot聚合推送通知设置区域===========================================
//此处填您iGot的信息(推送key例如https://push.hellyw.com/XXXXXXXX)
//注此处设置github action用户填写到Settings-Secrets里面Name输入IGOT_PUSH_KEY
@ -99,6 +104,10 @@ if (process.env.DD_BOT_TOKEN) {
}
}
if (process.env.QYWX_KEY) {
QYWX_KEY = process.env.QYWX_KEY;
}
if (process.env.IGOT_PUSH_KEY) {
IGOT_PUSH_KEY = process.env.IGOT_PUSH_KEY
}
@ -121,6 +130,7 @@ async function sendNotify(text, desp, params = {}) {
await BarkNotify(text, desp, params);//iOS Bark APP
await tgBotNotify(text, desp);//telegram 机器人
await ddBotNotify(text, desp);//钉钉机器人
await qywxBotNotify(text, desp); //企业微信机器人
await iGotNotify(text, desp, params);//iGot
await CoolPush(text, desp);//QQ酷推
}
@ -355,6 +365,47 @@ function ddBotNotify(text, desp) {
})
}
function qywxBotNotify(text, desp) {
return new Promise(resolve => {
const options = {
url: `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${QYWX_KEY}`,
json: {
msgtype: 'text',
text: {
content: ` ${text}\n\n${desp}`,
},
},
headers: {
'Content-Type': 'application/json',
},
};
if (QYWX_KEY) {
$.post(options, (err, resp, data) => {
try {
if (err) {
console.log('企业微信发送通知消息失败!!\n');
console.log(err);
} else {
data = JSON.parse(data);
if (data.errcode === 0) {
console.log('企业微信发送通知消息完成。\n');
} else {
console.log(`${data.errmsg}\n`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
} else {
console.log('您未提供企业微信机器人推送所需的QYWX_KEY取消企业微信推送消息通知\n');
resolve();
}
});
}
function iGotNotify(text, desp, params={}){
return new Promise(resolve => {
if (IGOT_PUSH_KEY) {