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解析xml模块封装代码
Feb 07 Python
python实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
详解Python中__str__和__repr__方法的区别
Apr 17 Python
Python调用命令行进度条的方法
May 05 Python
python获取文件扩展名的方法
Jul 06 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
Python中一般处理中文的几种方法
Mar 06 Python
使用python PIL库实现简单验证码的去噪方法步骤
May 10 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
python str字符串转uuid实例
Mar 03 Python
基于Python中random.sample()的替代方案
May 23 Python
Django-imagekit的使用详解
Jul 06 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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
php文件上传简单实现方法
2015/01/24 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
IE6 hack for js 集锦
2014/09/23 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
JS实现简单日历特效
2020/01/03 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python中__name__的使用实例
2015/04/14 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
浅谈django的render函数的参数问题
2018/10/16 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
pandas数据集的端到端处理
2019/02/18 Python
Python实现代码统计工具
2019/09/19 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
迷你西餐厅创业计划书范文
2013/12/31 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
法制宣传实施方案
2014/03/13 职场文书
幼儿老师求职信
2014/06/30 职场文书
个人政风行风自查自纠报告
2014/10/21 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
停电调休通知
2015/04/16 职场文书
学校党支部承诺书
2015/04/30 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android