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中的数据类型
May 05 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
python将秒数转化为时间格式的实例
Sep 16 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
python+pyqt5实现24点小游戏
Jan 24 Python
python3 反射的四种基本方法解析
Aug 26 Python
Django继承自带user表并重写的例子
Nov 18 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
python实现图片转字符画
Feb 19 Python
用python自动生成日历
Apr 24 Python
利用Python+OpenCV三步去除水印
May 28 Python
关于python pygame游戏进行声音添加的技巧
Oct 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
PHP模板引擎SMARTY
2006/10/09 PHP
[转帖]PHP世纪万年历
2006/12/06 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
PHP小技巧之函数重载
2014/06/02 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
jQuery检查事件是否触发的方法
2015/06/26 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
js制作提示框插件
2020/12/24 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
python中如何使用insert函数
2020/01/09 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
施工资料员岗位职责
2014/01/06 职场文书
九年级英语教学反思
2014/01/31 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
村党支部公开承诺书
2014/05/29 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
2014年减负工作总结
2014/12/10 职场文书