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实现根据图标提取分类应用程序实例
Sep 28 Python
python实现简单温度转换的方法
Mar 13 Python
python判断字符串是否包含子字符串的方法
Mar 24 Python
Python实现以时间换空间的缓存替换算法
Feb 19 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
在python中使用nohup命令说明
Apr 16 Python
python爬虫请求头设置代码
Jul 28 Python
python如何设置静态变量
Sep 07 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 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
CodeIgniter框架URL路由总结
2014/09/03 PHP
php使用PDO方法详解
2014/12/27 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
javascript multibox 全选
2009/03/22 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
使用express来代理服务的方法
2019/06/21 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
python实现AES加密和解密
2019/03/27 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
django中的数据库迁移的实现
2020/03/16 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
顺丰快递Java软件工程师面试题
2015/07/31 面试题
高校毕业生自我鉴定
2013/10/27 职场文书
生产副总岗位职责
2013/11/28 职场文书
书法培训心得体会
2014/01/05 职场文书
写自荐信三大法宝
2014/01/24 职场文书
篮球比赛策划方案
2014/06/05 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书