之前发过一个企业微信群机器人接口调用发提醒的文章,是用最简单的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任务计划程序实现的企业微信机器人定时消息就完成了!

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

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

  1. Beego搭建企业微信机器人定时消息推送

    Beego搭建企业微信Robot定时消息推送 功能说明 PostMan添加job msgType 默认是:text并且支持@all markdown支持颜色和样式但是不支持@all cron quar ...

  2. 【抖音热门情侣必备】微信早安定时消息推送源码

    手把手教你最近很火的 微信公众号测试号推送消息 1. 注册微信公众号测试号 2. 扫描测试号二维码 3. 新增测试模板 4. 下载并打开config修改配置文件 5. 补充配置文件 6. 运行程序 7 ...

  3. 给女盆友微信定时消息推送,给她一个大大的情惊喜!!!

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.微信推送 二.使用步骤 1. 注册微信微信公众平台 2.配置脚本参数 3.第三步:fork 仓库, 填入相应配置 1. ...

  4. Node-Red 实践:企业微信消息推送

    一个偶然的机会,认识了node-red.这种拖拽控件编写代码的方式给了我很深刻的印象.能够通过简单的拖拽实现mqtt,http,websocket,tcp的服务,作为基于网络的业务流程demon非常方 ...

  5. java开发钉钉企业内部应用,免登授权+消息推送

    1.申请账号登操作直接看文档去申请就ok了,管理员身份登录,创建微应用 地址:钉钉管理后台 - 钉钉统一身份认证 2.免登授权 CORP_ID :企业id,CORP_SECRET:企业秘钥,agent ...

  6. 持续集成之群聊机器人消息推送:钉钉 vs 企业微信

    企业微信和钉钉都有面向群的消息推送机器人,两者的使用非常相近,也有一些细节上的特性的区别,这篇文章将结合前面的使用示例进行总结. 使用方式 不同点 企业微信:先创建群,然后在群中添加机器人,可添加多个 ...

  7. 持续集成之消息推送:钉钉与企业微信的群聊机器人通用示例

    使用钉钉和企业微信的群聊机器人可以进行消息推送,这篇文章使用一个简单的脚本来说明其使用方式. 推送消息的方法 钉钉或者企业微信的群机器人都可提供消息推送的功能,相关的机器人的添加和消息推送的方法可以参 ...

  8. 基于Java实现企业微信群聊机器人-文件上传+消息推送(保证可用)

    基于Java实现企业微信群聊机器人-文件上传+消息推送 1.pom.xml(注意版本尽量保持一致) 2.文件工具类 3.企业微信请求类 4.企业微信响应类 5.发送方法 6.企业微信机器人创建和配置 ...

  9. 【个人开发】通过企业微信实现消息推送到个人微信

    1. 背景 个人有个消息推送到任务,一直在飞书上跑,消息触达率太低,寻思着尝试用一些方法,将消息推送到微信. 2. 写在前面 坑1:寻思着企业微信有机器人,将机器人所在群拉上微信号,结果,企业微信不允 ...

最新文章

  1. MongoDB获得短暂的
  2. WinCE开机Logo的实现(USB下载图片到nandflash)
  3. Vim 中文件目录浏览插件——NERD tree
  4. 006python路--深浅拷贝
  5. 关于优酷开放SDK之setOnLoadingStatusListener
  6. 做WebRTC,千万别把媒体和信令混在一起
  7. mysql force_MySQL force Index 强制索引概述
  8. 2004级C++试题及答案
  9. 2021年上半年数据库系统工程师上午真题及答案解析
  10. 电容麦克风测试软件,章和电气AudioExpress麦克风测试解决方案———您的音频测试专家...
  11. 程序员玩游戏之四--娱网棋牌大连打滚子记牌器
  12. WISP、Client+AP和WDS 区别
  13. C#调用RabbitMQ实现消息队列
  14. 超全面试汇总——Hive 超详细!!!带答案!!!持续更新中~
  15. mac时间机器占用大量系统盘空间且在访达中无法找到
  16. 崔毅东 C++程序设计入门(下) 第9单元:白公曾咏牡丹芳,一种鲜妍独“异常” 笔记
  17. 国密SM2的证书制作及验证
  18. python是一种跨平台开源解释型的_Python是一种跨平台、开源、免费的动态编程语言。...
  19. 阿里、华为领跑2019中国公有云物联网平台
  20. 微信小程序-实现两个按钮固定在页面底端且不随页面滑动(静态页面)

热门文章

  1. 《浪潮之巅》3水果公司的复兴
  2. K-Village NFT 作品集
  3. 思科多层交换机VLAN间路由及其配置
  4. STC15-STC15W4K56S4-STC15F2K60S2串口通信程序代码-提供源码下载
  5. 梯度下降算法的python实现
  6. python取整(不同方法的取整)
  7. 如何制作动图表情包?在线合成gif怎么操作?
  8. Sublime Text总在新窗口打开一个文件夹
  9. Spring Security Jwt Token 自动刷新
  10. 【绝对干货】2021年哔哩哔哩Java高级面试题及答案,完整版开放下载