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 相关文章推荐
Python3中的2to3转换工具使用示例
Jun 12 Python
Python中表示字符串的三种方法
Sep 06 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
使用python验证代理ip是否可用的实现方法
Jul 25 Python
python禁用键鼠与提权代码实例
Aug 16 Python
python实现静态web服务器
Sep 03 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
python中什么是面向对象
Jun 11 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
【超详细】八大排序算法的各项比较以及各自特点
Mar 31 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 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中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
解析php取整的几种方式
2013/06/25 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php利用header函数下载各种文件
2016/08/24 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
一个JS的日期格式化算法示例
2013/07/31 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
2013/12/28 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
webpack配置的最佳实践分享
2017/04/21 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
学生安全责任书
2014/04/15 职场文书
感恩节活动策划方案
2014/05/16 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
2015年纪委工作总结
2015/05/13 职场文书
Python pandas求方差和标准差的方法实例
2021/08/04 Python