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中dom元素的方法
Mar 12 Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
解决python 上传图片限制格式问题
Oct 30 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
python几种常用功能实现代码实例
Dec 25 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 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 echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php中autoload的用法总结
2013/11/08 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
Vue中keep-alive组件作用详解
2020/02/04 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python字符串连接的N种方式总结
2014/09/17 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
Python对excel的基本操作方法
2021/02/18 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
cf搞笑广告词
2014/03/14 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
小学生校园广播稿
2014/09/28 职场文书
贷款收入证明范本
2015/06/12 职场文书
开学第一周值周总结
2015/07/16 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
Java SSM配置文件案例详解
2021/08/30 Java/Android
JavaScript流程控制(循环)
2021/12/06 Javascript
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技