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中的Numeric包和Numarray包使用教程
Apr 13 Python
Python中的zipfile模块使用详解
Jun 25 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
Jul 01 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
Python3进制之间的转换代码实例
Aug 24 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
深入探讨opencv图像矫正算法实战
May 21 Python
使用Python获取字典键对应值的方法
Apr 26 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
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
JavaScript重载函数实例剖析
2016/05/13 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python实现的读写json文件功能示例
2018/06/05 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
企划专员岗位职责
2013/12/09 职场文书
志愿者活动总结范文
2014/04/26 职场文书
广播体操比赛口号
2014/06/10 职场文书
群众路线领导对照材料
2014/08/23 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
放假通知怎么写
2015/08/18 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL