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采用socket模拟TCP通讯的实现方法
Nov 19 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
python实现数据预处理之填充缺失值的示例
Dec 22 Python
python hook监听事件详解
Oct 25 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
python画图把时间作为横坐标的方法
Jul 07 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
python字符串下标与切片及使用方法
Feb 13 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
8个必备的PHP功能开发
2015/10/02 PHP
详解php中反射的应用
2016/03/15 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
vue ssr 指南详读
2018/06/29 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
python实现查询IP地址所在地
2015/03/29 Python
Python找出9个连续的空闲端口
2016/02/01 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
python组合无重复三位数的实例
2018/11/13 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
项目合作计划书
2014/01/09 职场文书
《中华少年》教学反思
2014/02/15 职场文书
节能环保口号
2014/06/12 职场文书
广播体操口号
2014/06/18 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2015年教师节慰问信
2015/03/23 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python