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


Posted in Python onFebruary 25, 2020

1、背景

由于办公需要“每天定时推送某消息用来提醒群里面所有人”,于是决定用企业微信自带的机器人来实现此功能。具体方法我来一一讲述。

2、企业微信API

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

3、想法

想到几种方式:

直接写个sh脚本,并用linux定时器执行此脚本就可以了。这种方式简单实用,不过缺点就是修改起来稍微麻烦一点写个Qt/VS客户端程序,做好页面和每天想推送的内容,还是有点麻烦直接写个后台程序,指定时间推消息吧,稍微快些(用Python更快)

4、效果

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

5、源代码

#! -*- 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")

6、Github源码分享

代码已上传至Github:https://github.com/ShaShiDiZhuanLan/Demo_QY_WX

7、具体步骤

7.1、创建一个群

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

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

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

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

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

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

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

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

7.5、配置程序到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一下哈。

使用supervisor的具体方法,在我这篇文章中有讲过:https://3water.com/article/181255.htm

7.6、完成

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

到此这篇关于Python实现企业微信机器人每天定时发消息实例的文章就介绍到这了,更多相关Python 微信机器人定时发消息内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
Python随机生成数模块random使用实例
Apr 13 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
python实现两个文件夹的同步
Aug 29 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
python 实现线程之间的通信示例
Feb 14 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
Python编程super应用场景及示例解析
Oct 05 Python
Django 设置多环境配置文件载入问题
Feb 25 #Python
python中resample函数实现重采样和降采样代码
Feb 25 #Python
python实现的分层随机抽样案例
Feb 25 #Python
Python可变对象与不可变对象原理解析
Feb 25 #Python
Python 使用 environs 库定义环境变量的方法
Feb 25 #Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 #Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 #Python
You might like
php设置session值和cookies的学习示例
2014/03/21 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
jQuery select操作控制方法小结
2010/05/26 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
angularJS开发注意事项
2018/05/26 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
Python中无限元素列表的实现方法
2014/08/18 Python
Python实现八大排序算法
2016/08/13 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
线程同步的方法
2016/11/23 面试题
新员工欢迎词
2014/01/12 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
绿色校园广播稿
2014/10/13 职场文书
父亲节活动总结
2015/02/12 职场文书
后勤个人工作总结
2015/02/28 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
风之谷观后感
2015/06/11 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
mysql数据库实现设置字段长度
2022/06/10 MySQL