- 登入到企业微信或者钉钉,创建群组(加你自己至少三人才能创建群聊),然后右键群组添加机器人,然后原文链接:https://www.dqzboy.com点击机器人配置,获取机器人的
webhook
地址并复制保存。
[root@localhost ~]# vim /script/python3/wechat.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import json
def wechatwork():
webhook = "企业微信机器人的webhook"
header = {
"Content-Type": "application/json",
"Charset": "UTF-8"
}
tex = "今天是个好日子,加油,DqzBoy"
message ={
"msgtype": "text",
"text": {
"content": tex
},
"at": {
"isAtAll": True
}
}
message_json = json.dumps(message)
info = requests.post(url=webhook,data=message_json,headers=header)
print(info.text)
if __name__=="__main__":
wechatwork()
[root@localhost ~]# chmod +x /script/python3/wechat.py
[root@localhost ~]# /script/python3/wechat.py
- 现在我们可以通过定时发送消息到指定的工作群等,Linux环境下就是通过crontab调用该脚本定时发送信息到工作群。
0 9 * * * /script/python3/wechat.py #每天上午9点执行脚本
- 上面我们是通过定时任务去推送消息的,缺点就是不管是节假日还是工作日都会去推送消息;现在我们调用法定节假日API接口,进行判断原文链接:https://www.dqzboy.com是否为工作日或是法定节假日,然后进行推送消息;
- 这里我们想要实现的是,工作日则每天9点进行文章来源(Source):https://www.dqzboy.com准时消息推送(这里还是在定时任务里写死),而节假日则不进行推送消息。
[root@localhost ~]# vim /script/python3/wechat.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import time
import time,datetime #获取当前系统的时间和日期
import json
holiday_info = {}
#定义年份
CUR_YEAR = '2020'
#企业微信webhook
WORK_WX_URL = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx'
#发送消息到企业机器人,定义信息类型
def post_to_wx(content):
data = {
"msgtype": "text",
"text": {
"content": content,
"mentioned_list":["@all"],
}
}
headers = {'Content-Type':'application/object'}
jdata = json.dumps(data)
jdata = bytes(jdata, encoding="utf8")
rep = requests.post(url=WORK_WX_URL, data=jdata, headers=headers)
#获取法定节假日信息
def init_holiday_info():
global holiday_info
rep = requests.get('http://tool.bitefu.net/jiari/?d=' + CUR_YEAR)
info_txt = rep.content.decode()
holiday_info = json.loads(info_txt)
#判断是否为工作日
def check_if_is_work_day():
day_info = time.strftime("%m%d",time.localtime(time.time()))
print(day_info) #将当前日志打印出来
if day_info in holiday_info[CUR_YEAR]:
return False
week = datetime.datetime.now().weekday()
if 0 <= week and 4 >= week:
#定义发送的信息内容
post_to_wx('今天是个好日子,加油,DqzBoy')
return False
if __name__ == "__main__":
init_holiday_info()
check_if_is_work_day()
- 这里我们将系统时间进行调整
- 1、先调整为工作日时间,然后手动触发脚本,检查是否会推送消息;
- 2、调整文章来源(Source):https://www.dqzboy.com时间为节假日时间,然后手动触发脚本,检查是否会推送消息。
[root@localhost python3]# ./wechat.py
0518
{"errcode":0,"errmsg":"ok"}
原文链接:https://www.dqzboy.com
[root@localhost python3]# ./wechat.py
0523 #非工作日企业微信收不到消息
必须 注册 为本站用户, 登录 后才可以发表评论!