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 调用DLL操作抄表机
Jan 12 Python
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
编写Python CGI脚本的教程
Jun 29 Python
Python中字符串的格式化方法小结
May 03 Python
Python+tkinter模拟“记住我”自动登录实例代码
Jan 16 Python
python读取几个G的csv文件方法
Jan 07 Python
Python API len函数操作过程解析
Mar 05 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
python实现canny边缘检测
Sep 14 Python
python+opencv实现车道线检测
Feb 19 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 md5下16位和32位的实现代码
2008/04/09 PHP
php 执行系统命令的方法
2009/07/07 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP中SESSION过期设置
2021/03/09 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
js模拟微博发布消息
2017/02/23 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python的变量与赋值详细分析
2017/11/08 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
解决yum对python依赖版本问题
2019/07/05 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
党支部对照检查材料
2014/08/25 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
Python如何将list中的string转换为int
2022/07/15 Ruby