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比较两个列表是否相等的方法
Jul 28 Python
python实现验证码识别功能
Jun 07 Python
python实现人民币大写转换
Jun 20 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
PyTorch中的Variable变量详解
Jan 07 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
Python基于pandas爬取网页表格数据
May 11 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
python urllib库的使用详解
Apr 13 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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 session 检测和注销
2009/03/16 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
详解JavaScript作用域 闭包
2020/07/29 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
django迁移数据库错误问题解决
2019/07/29 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
python wsgiref源码解析
2021/02/06 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
函授大学生自我鉴定
2014/02/05 职场文书
厂区绿化方案
2014/05/08 职场文书
体育之星事迹材料
2014/05/11 职场文书
学校搬迁方案
2014/06/15 职场文书
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL