Python开发企业微信机器人每天定时发消息实例


Posted in Python onMarch 17, 2020

由于办公需要“每天定时推送某消息用来提醒群里面所有人”,有同事提议用企业微信自带的机器人来实现此功能。我觉得企业微信的这个工具还不错,具体使用方法我来一一讲述。

企业微信API

具体见官网说明:https://work.weixin.qq.com/help?person_id=1&doc_id=

企业微信机器人开发思路

想到几种方式:

直接写个sh脚本,并用linux定时器执行此脚本就可以了。这种方式简单实用,不过缺点就是修改起来稍微麻烦一点

写个Qt/VS客户端程序,做好页面和每天想推送的内容,还是有点麻烦

直接写个后台程序,指定时间推消息吧,稍微快些(用Python更快)

Python开发企业微信机器人每天定时发消息最终效果

Python开发企业微信机器人每天定时发消息实例

Python开发企业微信机器人每天定时发消息实例源代码

#! -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
Create type_time: 2020-2-24
Info: 定期向企业微信推送消息
"""
import requests, json
import datetime
import time
wx_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4baf3c3c-f3ea-4554-9a45-9fbbb2076269"  # 测试机器人1号
send_message = "测试:测试机器人1号………………………………!"
def get_current_time():
  """获取当前时间,当前时分秒"""
  now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  hour = datetime.datetime.now().strftime("%H")
  mm = datetime.datetime.now().strftime("%M")
  ss = datetime.datetime.now().strftime("%S")
  return now_time, hour, mm, ss
def sleep_time(hour, m, sec):
  """返回总共秒数"""
  return hour * 3600 + m * 60 + sec
def send_msg(content):
  """艾特全部,并发送指定信息"""
  data = json.dumps({"msgtype": "text", "text": {"content": content, "mentioned_list":["@all"]}})
  r = requests.post(wx_url, data, auth=('Content-Type', 'application/json'))
  print(r.json)
def every_time_send_msg(interval_h=0, interval_m=1, interval_s=0, special_h="00", special_m="00", mode="special"):
  """每天指定时间发送指定消息"""
  # 设置自动执行间隔时间
  second = sleep_time(interval_h, interval_m, interval_s)
  # 死循环
  while 1 == 1:
    # 获取当前时间和当前时分秒
    c_now, c_h, c_m, c_s = get_current_time()
    print("当前时间:", c_now, c_h, c_m, c_s)
    if mode == "special":
      if c_h == special_h and c_m == special_m:
        # 执行
        print("正在发送...")
        send_msg(send_message)
    else:
      send_msg(send_message)
    print("每隔" + str(interval_h) + "小时" + str(interval_m) + "分" + str(interval_s) + "秒执行一次")
    # 延时
    time.sleep(second)
if __name__ == '__main__':
  every_time_send_msg(mode="no")

企业微信机器人设置具体步骤

创建一个群

最好是一个人的群,方便测试

Python开发企业微信机器人每天定时发消息实例

创建好后,添加一个群机器人

Python开发企业微信机器人每天定时发消息实例

给机器人起名字、添加头像

Python开发企业微信机器人每天定时发消息实例

创建好后,复制Webhook地址后,点完成

Python开发企业微信机器人每天定时发消息实例

配置程序到supervisor中启动

具体ini配置:

[program:Demo_QY_WX]
directory = /root/software/python_Demo/Demo/Demo_QY_WX/
command= python3 -u Demo_QY_WX.py
autostart = true
autorestart=true
startsecs = 5
user =root
redirect_stderr = true
stdout_logfile = /data/logs/supervisord/Demo_QY_WX.log
[group:Demo]
programs=Demo_QY_WX ;server,progname2 each refers to 'x' in [program:x] definitions
priority=999         ; the relative start priority (default 999)

update一下OK

完成以上步骤后,你可以在企业微信上每天指定时间推送消息,也可以间隔时间推送消息咯。

本文主要讲解了使用企业微信API与Python开发企业微信机器人每天定时发消息实例,更多关于

Python 相关文章推荐
使用Python求解最大公约数的实现方法
Aug 20 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
分享python数据统计的一些小技巧
Jul 21 Python
关于python的list相关知识(推荐)
Aug 30 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 #Python
Python Selenium安装及环境配置的实现
Mar 17 #Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 #Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 #Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 #Python
利用python在excel中画图的实现方法
Mar 17 #Python
Python reversed函数及使用方法解析
Mar 17 #Python
You might like
php strcmp使用说明
2010/04/22 PHP
php 获取一个月第一天与最后一天的代码
2010/05/16 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
理解Python垃圾回收机制
2016/02/12 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
初二政治教学反思
2014/01/12 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
校园十大歌手策划书
2014/02/01 职场文书
广告词串烧
2014/03/19 职场文书
中秋寄语大全
2014/04/11 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
mysql 获取相邻数据项
2022/05/11 MySQL