飞书机器人webhook调用

news/2025/1/15 21:52:23/

调用飞书机器人webhook进行打卡提醒

import yamlimport os,re
import requests
import json
import logging
import time
import urllib3
urllib3.disable_warnings()import datetime
import scheduledef load_yaml(config_file):try:with open(config_file, 'r') as f:config=yaml.safe_load(f)return configexcept Exception as e:print(str(e))return Nonetry:JSONDecodeError = json.decoder.JSONDecodeError
except AttributeError:JSONDecodeError = ValueErrorclass FeiShuBot(object):def __init__(self):'''机器人初始化:param webhook: 飞书群自定义机器人webhook地址:param secret: 机器人安全设置页面勾选“加签”时需要传入的密钥:param pc_slide: 消息链接打开方式,默认False为浏览器打开,设置为True时为PC端侧边栏打开:param fail_notice: 消息发送失败提醒,默认为False不提醒,开发者可以根据返回的消息发送结果自行判断和处理'''super(FeiShuBot, self).__init__()self._headers = {'Content-Type': 'application/json; charset=utf-8'}def _post(self, data):self._web_hook = "https://open.feishu.cn/open-apis/bot/v2/hook/c773d47a-d107-4674-9550-34086669bc9c"if self._web_hook is None:print('no valid web_hook or chat_group is selected')returntry:post_data = json.dumps(data)response = requests.post(self._web_hook, headers=self._headers, data=post_data, verify=False)#print(response)except requests.exceptions.HTTPError as exc:logging.error("消息发送失败, HTTP error: %d, reason: %s" % (exc.response.status_code, exc.response.reason))raiseexcept requests.exceptions.ConnectionError:logging.error("消息发送失败,HTTP connection error!")raiseexcept requests.exceptions.Timeout:logging.error("消息发送失败,Timeout error!")raiseexcept requests.exceptions.RequestException:logging.error("消息发送失败, Request Exception!")raiseelse:try:result = response.json()except JSONDecodeError:logging.error("服务器响应异常,状态码:%s,响应内容:%s" % (response.status_code, response.text))return {'errcode': 500, 'errmsg': '服务器响应异常'}else:logging.debug('发送结果:%s' % result)# 消息发送失败提醒(errcode 不为 0,表示消息发送异常),默认不提醒,开发者可以根据返回的消息发送结果自行判断和处理# if self._fail_notice and result.get('errcode', True):#     time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))#     error_data = {#         "msgtype": "text",#         "text": {#             "content": "[注意-自动通知]飞书机器人消息发送失败,时间:%s,原因:%s,请及时跟进,谢谢!" % (#                 time_now, result['errmsg'] if result.get('errmsg', False) else '未知异常')#         },#         "at": {#             "isAtAll": False#         }#     }#     logging.error("消息发送失败,自动通知:%s" % error_data)#     requests.post(self._web_hook, headers=self._headers, data=json.dumps(error_data))return result# -----------------public function-----------------def send_notification(self):# 打印按指定格式排版的时间current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')message = "今天又是美好的一天"print(current_time)report_content=[[   {"tag": "text", "text": "当前时间: {}".format(current_time)} ],[   {"tag": "text", "text": "message: {}".format(message)} ],]print('send to feishu:')self._post({"msg_type": "post","content": {"post": {"zh_cn": {"title": "九点啦!快打卡!搞快点!","content": report_content,}}}})def job():print("I'm working...")fsb = FeiShuBot()fsb.send_notification()if __name__ == "__main__":# schedule.every(5).seconds.do(job)# schedule.every(10).seconds.do(job)# schedule.every(0.25).minutes.do(job)# schedule.every().hour.do(job)schedule.every().day.at("21:00").do(job)# schedule.every().monday.do(job)# schedule.every().wednesday.at("13:15").do(job)while True:schedule.run_pending()time.sleep(1)

http://www.ppmy.cn/news/849070.html

相关文章

服务器c盘哪些文件可以删,教你c盘哪些文件可以删除

众所周知,C盘空间不足会导致系统很多应用无法正常运行,系统垃圾无法生成,甚至开机后无法进入系统。想要腾出空间最彻底的方法就是删除那些垃圾文件,那么,C盘哪些文件可以删除呢?对此,小编久给大…

计算机c盘中哪些东西能删除吗,C盘哪些文件可以删除

电脑C盘容量越来越小了,尤其是比较老的电脑,由于硬盘容量比较小,所以C盘容量比较小,当C盘文件过多电脑桌面由下脚经常会弹出“您的C盘系统资源不足”。C盘是系统盘,垃圾文件过多或者剩余空间不足都会导致系统运行缓慢。 当出现C盘容量不足时,解决办法一般都是对C盘垃圾文…

计算机c盘哪些是系统文件格式,c盘哪些文件可以删除

在此之前,笔者就有和大家说过c盘空间越来越小要怎么办,特别是老式电脑,硬盘太小,更容易导致c盘空间变小,当C盘存了太多文件的时候,电脑还会提示“您的C盘系统资源不足”,众所周知,C盘是系统盘,如果有太多垃圾文件就会影响空间大小,所以大家通常都是对C盘进行垃圾文件…

Windows 11 修改桌面文件路径

Win11桌面文件路径更改 修改路径步骤在别的盘建立一个新的文件夹修改路径 桌面文件默认是在C盘的,但是C盘,通常做系统盘,桌面文件太多,很容易导致C盘空间不足,将桌面文件存储路径更改到其它盘,可以把节省C盘…

Python Web开发技巧V

Python进程池和线程池 Python 进程池 进程池是一种并发编程概念,用于管理多个进程的创建、执行和终止,进程池中进程可并行执行,以提高效率。是 多进程操作。 优点: 提高性能:将任务分配给多个进程,进程池…

杨氏模量——从宏观(应力-应变曲线)到微观(原子键)尺度解释杨氏模量

杨氏模量(Young’s Modulus)是三个主要弹性常数之一,与剪切模量(shear modulus)、体积模量(bulk modulus)一起用于描述材料在载荷下如何变形 以下展示了拉伸试验的应力应变曲线 如果施加的应力…

window中的DLL和linux中的os文件是什么东西

原文地址:https://blog.csdn.net/hao707822882/article/details/40002583 Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门…

用unity做游戏用java_Unity游戏开始崩溃

从Android Vitals获得以下堆栈跟踪: java.lang.Error: FATAL EXCEPTION [main] Unity version : 5.6.2f1 Device model : samsung SM-G955F Device fingerprint: samsung/dream2ltexx/dream2lte:8.0.0/*****/***********B7:user/release-keys Caused by at bitter.j…