- 登入到企业微信或者钉钉,创建群组(加你自己至少三原文链接:https://www.dqzboy.com人才能创建群聊),然后右键群组添加机器人,然后点击机器人配置,获取机器人的
webhook
地址并复制保存。
二、编写Py脚文章来源(Source):浅时光博客本
- 注意原文链接:https://www.dqzboy.com:需要安装
requests
模块
[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环境下就是通过c文章来源(Source):浅时光博客rontab调用该脚本定时发送信息到工作群。
0 9 * * * /script/python3/wechat.py #每天上午9点执行脚本
- 上面我们是通过定时任务去推送消息的,缺点就是不管是节假日还是工作日都会去推送消息;现在我们调用法定节假日API接口,进行判断是否为工作日或是法定节假日,然后进行推送消息文章来源(Source):浅时光博客;
- 这里我们想要实现的是,工作日则每天9点进行准时消息推送(这里还是在定时任务里写死),而节假日则不进行推送消息。
[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、调整时间为节假日时间,然后手动触发脚本,检查是否会推送消息。
[root@localhost python3]# ./wechat.py
0518
{"errcode":0,"errmsg":"ok"}
[root@localhost python3]# ./wechat.py
0523 #非工作日企业微信收不到消息
本文作者:浅时光博客
原文链接:https://www.dqzboy.com/2563.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以超链接形式标明文章原始出处和作者信息
免责声明:本站发布的内容(图片、视频和文字)以及一切破解补丁、注册激活和软件解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。访问和下载本站内容,说明您已同意上述条款!
谢谢分享 挺有意思