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使用新浪微博api上传图片到微博示例
Jan 10 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
Python绘制热力图示例
Sep 27 Python
python pygame实现挡板弹球游戏
Nov 25 Python
关于Keras模型可视化教程及关键问题的解决
Jan 24 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
django中ImageField的使用详解
Dec 21 Python
PyChon中关于Jekins的详细安装(推荐)
Dec 28 Python
python编程的核心知识点总结
Feb 08 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 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 什么是PEAR?(第二篇)
2009/03/19 PHP
php自定义apk安装包实例
2014/10/20 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
各种常用的JS函数整理
2013/10/25 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
详解如何理解vue的key属性
2019/04/14 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
详解Python中的文件操作
2016/08/28 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
法律工作求职自荐信
2013/10/31 职场文书
求职信格式范本
2013/11/15 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
小组名称和口号
2014/06/09 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python