1. 程式人生 > 程式設計 >Python實現企業微信機器人每天定時發訊息例項

Python實現企業微信機器人每天定時發訊息例項

1、背景

由於辦公需要“每天定時推送某訊息用來提醒群裡面所有人”,於是決定用企業微信自帶的機器人來實現此功能。具體方法我來一一講述。

2、企業微信API

具體見官網說明:https://work.weixin.qq.com/help?person_id=1&doc_id=13376

3、想法

想到幾種方式:

直接寫個sh指令碼,並用linux定時器執行此指令碼就可以了。這種方式簡單實用,不過缺點就是修改起來稍微麻煩一點寫個Qt/VS客戶端程式,做好頁面和每天想推送的內容,還是有點麻煩直接寫個後臺程式,指定時間推訊息吧,稍微快些(用Python更快)

4、效果

Python實現企業微信機器人每天定時發訊息例項

5、原始碼

#! -*- 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_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")

6、Github原始碼分享

程式碼已上傳至Github:https://github.com/ShaShiDiZhuanLan/Demo_QY_WX

7、具體步驟

7.1、建立一個群

最好是一個人的群,方便測試

Python實現企業微信機器人每天定時發訊息例項

7.2、建立好後,新增一個群機器人

Python實現企業微信機器人每天定時發訊息例項

7.3、給機器人起名字、新增頭像

Python實現企業微信機器人每天定時發訊息例項

7.4、建立好後,複製Webhook地址後,點完成

Python實現企業微信機器人每天定時發訊息例項

7.5、配置程式到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一下哈。

使用supervisor的具體方法,在我這篇文章中有講過:https://www.jb51.net/article/181255.htm

7.6、完成

over,你可以在企業微信上每天指定時間推送訊息,也可以間隔時間推送訊息咯。

到此這篇關於Python實現企業微信機器人每天定時發訊息例項的文章就介紹到這了,更多相關Python 微信機器人定時發訊息內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!