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里隐藏的“禅”
Jun 16 Python
Python with的用法
Aug 22 Python
用python实现面向对像的ASP程序实例
Nov 10 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
讲解Python中fileno()方法的使用
May 24 Python
机器学习python实战之决策树
Nov 01 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
flask项目集成swagger的方法
Dec 09 Python
python+opencv实现目标跟踪过程
Jun 21 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根据日期判断星座的函数分享
2014/02/13 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
详解Nodejs之npm&package.json
2017/06/15 NodeJs
详解angular应用容器化部署
2018/08/14 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python解析json实例方法
2013/11/19 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
对Django中内置的User模型实例详解
2019/08/16 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
JAVA和C++的区别
2013/10/06 面试题
毕业生的自我鉴定
2013/10/29 职场文书
合作投资意向书
2014/04/01 职场文书
1亿有多大教学反思
2014/05/01 职场文书
资产运营委托书范本
2014/10/16 职场文书
2015年质检工作总结
2015/05/04 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书