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实现多线程网页爬虫
Sep 06 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
python单线程文件传输的实例(C/S)
Feb 13 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
Python流程控制常用工具详解
Feb 24 Python
python线程池如何使用
May 28 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 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中用正则表达式清除字符串的空白
2011/01/17 PHP
PHP多例模式介绍
2013/06/24 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
Jquery 插件开发笔记整理
2011/01/17 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
Python地图绘制实操详解
2019/03/04 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python根据时间获取周数代码实例
2019/09/30 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
早恋主题班会
2015/08/14 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android