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 学习笔记
Dec 27 Python
用实例说明python的*args和**kwargs用法
Nov 01 Python
python字符类型的一些方法小结
May 16 Python
Python实现带百分比的进度条
Jun 28 Python
利用python实现数据分析
Jan 11 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
python将字符串转变成dict格式的实现
Nov 18 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
Nov 25 Python
Python selenium爬取微博数据代码实例
May 22 Python
Django后端按照日期查询的方法教程
Feb 28 Python
python神经网络Xception模型
May 06 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
jQuery Ajax使用 全解析
2010/12/15 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
平面设计自荐信
2013/10/07 职场文书
人事助理岗位职责
2013/11/18 职场文书
高考学习决心书
2015/02/04 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android