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代码来绘制彭罗斯点阵的教程
Apr 03 Python
Python字符串中查找子串小技巧
Apr 10 Python
Python读大数据txt
Mar 28 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python使用windows设置定时执行脚本
Nov 12 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python 测试实现方法
2008/12/24 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
python字典的常用方法总结
2019/07/31 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
师范生教师实习自我鉴定
2013/09/27 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
大学生演讲稿范文
2014/01/11 职场文书
好军嫂事迹材料
2014/01/15 职场文书
村居抓节水倡议书
2014/05/19 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
员工升职自我评价
2019/03/26 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
详细介绍python类及类的用法
2021/05/31 Python
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
nginx请求限制配置方法
2021/07/09 Servers
使用 Apache 反向代理的设置技巧
2022/01/18 Servers