企业微信机器人脚本python_python提取数据库数据并实现企业微信机器人定时消息推送...

之前发过一个企业微信群机器人接口调用发提醒的文章,是用最简单的VBS脚本+Windows任务计划来实现的,仅实现了定时发送固定内容的提醒。其实企业微信机器人就是一个webhook接口,用户以post data向这个Webhook地址发起HTTP POST 请求,即可实现给该群组发送消息了。

最近在使用python这个万能的胶水语言实现一些办公自动化的操作,顺便用python简单实现了一下定时读取数据库信息,然后通过机器人接口推送到群的小脚本。

提取数据的步骤是:

1、连接数据库(我用的是mssql)

2、查询需要的数据表信息

3、将数据集编码成为符合POST数据要求的字符串

4、调用webhook接口提交完成

这个脚本完成后,可以用两种方式实现定时任务。如果用的是windows操作系统,最方便可靠的就还是用任务计划。或者用python本身解决,方式有很多,比如:1.循环+sleep;2.线程模块中Timer类;

3.schedule模块;4.定时框架:APScheduler等等。

本着实用主义精神,我还是直接用任务计划了。

从数据库提取数据的脚本如下:

# encoding: utf-8

# 上面一行注释是为了防止中文字符乱码

import pymssql # 引入数据库操作组件

import requests # 引入http请求组件

# 发送消息函数

def postmsg(url, post_data):

# post_data的格式要按照企业微信机器人配置说明里的的要求来,这次用的是markdown格式

post_data = '{"msgtype" : "markdown", "markdown" : {"content": "%s"}}' % post_data

print(post_data)

if url == '':

print('URL地址为空!')

else:

r = requests.post(url, data=post_data.encode())

rstr = r.json()

if r.status_code == 200 and 'error' not in rstr:

result = '发送成功'

return result

else:

return 'Error'

def querySQL():

# 定义一个查询函数,把数据库连接配置放在一起,方便修改

config_dict = {

'user': 'sa', # 数据库帐号

'password': '**********', # 数据库访问密码

'host': '192.168.*.*', # 数据库服务器IP

'database': 'DataBaseName' # 数据库名

}

def conn():

connect = pymssql.connect(**config_dict)

if connect:

print("connect success!!!")

return connect

else:

print("连接失败!请检查配置信息!")

conn = conn()

cursor = conn.cursor()

sql = "select * from tablename order by 日期" # 编写SQL查询字符串,tablename是表名

cursor.execute(sql)

row = cursor.fetchone()

outmsg = "### 最近七天市场业绩:\n" # 给要发送的消息加个标题

while row:

outmsg = outmsg + r">日期:%s , 业绩:%d , 店数:%s" % (row[0], row[1], row[2]) + "\n" # 要把从表中查到的信息重新组合成符合markdown格式的字符串

row = cursor.fetchone()

return outmsg # 返回查到的信息

cursor.close()

conn.close()

if __name__ == '__main__':

url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*********"

# 这个是你要调用的机器人地址,在群里添加了机器人之后就会有这个地址了,每个机器人只有一个地址

post_data = querySQL()

# print(post_data)

result = postmsg(url, post_data)

print(result)

以上代码先运行一下,确保没有问题:

下一步就是创建任务计划了,与使用VBS不同的同,VBS在widows操作系统里是可以直接执行的,但python需要先安装,并配置好环境变量,以保证脚本可以正常运行。

python安装步骤如下:

1、先到官网下载安装包:https://www.python.org/

2、运行安装程序,一路next直到安装完成就好了。这个时候直接在命令行输入python命令还是无法执行的,需要配置一下环境变量:

点击高级系统设置

点击“环境变量”

在“系统变量”里选择“Path”编辑

点击右上方“新建”按钮,输入Python.exe文件所在目录“C:\Python27”

同理,在path环境变量中输入pip.exe文件所在目录“C:\Python27\Scripts”

点击确认。

至此,环境变量配置完毕。此时再在cmd命令行窗口中输入“python -v”命令,可看到对应的python版本信息,输入print "hello world"看到命令已经可以执行了。

至此,Windows10环境下的python2.7安装与配置完成!如果是安装其它的python版本,基本上也是类似的步骤。

验证一下,py文件是否可以正常运行,我们编辑一个名为helloworld.py 的文件,这个文件只有一句话:print "hello world!"

在命令窗口,切换路径到这个文件所在的文件夹,然后直接输出这个文件的名字,回车。如果执行成功,就说明python环境没有问题了。接下来就可以创建任务计划了。

可以通过搜索,打开任务计划程序

其它配置可根据需求调整,到这一步,一个用python脚本加上windows任务计划程序实现的企业微信机器人定时消息就完成了!

如果您也有类似需求,可以参考本文,欢迎交流讨论,顺手点个赞最好了。