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中函数的参数定义和可变参数用法实例分析
Jun 04 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
python自带的http模块详解
Nov 06 Python
python如何统计序列中元素
Jul 31 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python样条插值的实现代码
Dec 17 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
Django项目创建到启动详解(最全最详细)
Sep 07 Python
python爬虫容易学吗
Jun 02 Python
只需要这一行代码就能让python计算速度提高十倍
May 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 404错误页面实现代码
2009/06/22 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
JS前端笔试题分析
2016/12/19 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
python scp 批量同步文件的实现方法
2019/01/03 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
求职自荐信格式
2013/12/04 职场文书
销售总经理岗位职责
2014/03/15 职场文书
学习型班组申报材料
2014/05/31 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
仲裁协议书
2014/09/26 职场文书
公司委托书格式范文
2014/10/09 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
实习推荐信格式模板
2015/03/27 职场文书
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL