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使用cookie库操保存cookie详解
Mar 03 Python
Python写的一个简单DNS服务器实例
Jun 04 Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 Python
python统计cpu利用率的方法
Jun 02 Python
Python数据操作方法封装类实例
Jun 23 Python
python3学习之Splash的安装与实例教程
Jul 09 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
基于tensorflow for循环 while循环案例
Jun 30 Python
Python控制鼠标键盘代码实例
Dec 08 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
Python操作串口的方法
2015/06/17 Python
使用python实现省市三级菜单效果
2016/01/20 Python
详解python中的文件与目录操作
2017/07/11 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
django的autoreload机制实现
2020/06/03 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
老同学聚会感言
2014/02/23 职场文书
体育馆的标语
2014/06/24 职场文书
委托证明模板
2014/09/16 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
党支部四风整改方案
2014/10/25 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
《秋思》教学反思
2016/02/23 职场文书
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle