提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
每日8点半都需要往企微群里发布当日的值班人员名单,虽然工作量不大,但难免有所遗忘,造成当天无人值班的情况。偶然之下,得知企微微信中有群聊机器人,可以实现定时推送信息的功能,经过一番琢磨,得以实现。废话不多说,进入正题。
提示:以下是本篇文章正文内容,下面案例可供参考
一、实现的功能
将保存在excel中当日值班人员信息,在上午8:30,自动发送到企微群中。
excel值班表:
实现自动推送,下图为测试展示图(设置为21:16自动推送)。
二、实现代码
1.引入库
代码如下(示例):
引入库:
# -*- coding: utf-8 -*
import os
import time
import requests
import datetime
import schedule
import pandas as pd
调用企微群机器人:
class WXWork_SMS:
def __init__(self):
self.headers = {"Content-Type": "text/html"}
# 测试机器人webhook地址
self.send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key="
self.auth = ('Content-Type', 'application/json')
def send_requests(self, send_data):
res = requests.post(url=self.send_url, headers=self.headers, \
json=send_data, auth=self.auth,verify=False)
print(res.json())
def send_msg(self,today,name_A,name_B):
context = '今天'+today+'值班人员A岗' + name_A +', '+ 'B岗'+ name_B+ '\n'
# context.format(today=today,name_A=name_A,name_B=name_B)
# 发送消息
send_data = {
"msgtype": "text", # 消息类型,此时固定为news
"text": {
"content": context,
"mentioned_list": ["@all"]}}
self.send_requests(send_data)
主函数及调用:
def main():
data = pd.read_excel('值班表1.xlsx')
today = datetime.datetime.now().date().strftime('%Y/%m/%d')
print(today)
for i, vaule in enumerate(data['日期']):
if vaule.strftime('%Y/%m/%d') == today:
content = data.iloc[i][0:4]
print(content)
message = [today, content[-1], content[-2]]
sms = WXWork_SMS()
sms.send_msg(*message)
if __name__ == '__main__':
schedule.every().day.at("21:36").do(main)
while True:
schedule.run_pending()
time.sleep(10)