Python开发企业微信机器人每天定时发消息实例


Posted in Python onMarch 17, 2020

由于办公需要“每天定时推送某消息用来提醒群里面所有人”,有同事提议用企业微信自带的机器人来实现此功能。我觉得企业微信的这个工具还不错,具体使用方法我来一一讲述。

企业微信API

具体见官网说明:https://work.weixin.qq.com/help?person_id=1&doc_id=

企业微信机器人开发思路

想到几种方式:

直接写个sh脚本,并用linux定时器执行此脚本就可以了。这种方式简单实用,不过缺点就是修改起来稍微麻烦一点

写个Qt/VS客户端程序,做好页面和每天想推送的内容,还是有点麻烦

直接写个后台程序,指定时间推消息吧,稍微快些(用Python更快)

Python开发企业微信机器人每天定时发消息最终效果

Python开发企业微信机器人每天定时发消息实例

Python开发企业微信机器人每天定时发消息实例源代码

#! -*- 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")

企业微信机器人设置具体步骤

创建一个群

最好是一个人的群,方便测试

Python开发企业微信机器人每天定时发消息实例

创建好后,添加一个群机器人

Python开发企业微信机器人每天定时发消息实例

给机器人起名字、添加头像

Python开发企业微信机器人每天定时发消息实例

创建好后,复制Webhook地址后,点完成

Python开发企业微信机器人每天定时发消息实例

配置程序到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一下OK

完成以上步骤后,你可以在企业微信上每天指定时间推送消息,也可以间隔时间推送消息咯。

本文主要讲解了使用企业微信API与Python开发企业微信机器人每天定时发消息实例,更多关于

Python 相关文章推荐
Python判断Abundant Number的方法
Jun 15 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
Python爬虫设置代理IP的方法(爬虫技巧)
Mar 04 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
python 异或加密字符串的实例
Oct 14 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
如何用python反转图片,视频
Apr 24 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 #Python
Python Selenium安装及环境配置的实现
Mar 17 #Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 #Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 #Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 #Python
利用python在excel中画图的实现方法
Mar 17 #Python
Python reversed函数及使用方法解析
Mar 17 #Python
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
python生成指定尺寸缩略图的示例
2014/05/07 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
python中sys模块是做什么用的
2020/08/16 Python
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
自荐信结尾
2013/10/27 职场文书
公积金单位接收函
2014/01/11 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
营销团队口号
2014/06/06 职场文书
2014年营销工作总结
2014/11/22 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
植物园观后感
2015/06/11 职场文书
spring 项目实现限流方法示例
2022/07/15 Java/Android
MySQL深分页问题解决思路
2022/12/24 MySQL