飞书机器人webhook调用

这篇具有很好参考价值的文章主要介绍了飞书机器人webhook调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

调用飞书机器人webhook进行打卡提醒文章来源地址https://www.toymoban.com/news/detail-566674.html

import yaml

import os,re
import requests
import json
import logging
import time
import urllib3
urllib3.disable_warnings()

import datetime
import schedule

def load_yaml(config_file):
    try:
        with open(config_file, 'r') as f:
            config=yaml.safe_load(f)
            return config
    except Exception as e:
        print(str(e))
    
    return None

try:
    JSONDecodeError = json.decoder.JSONDecodeError
except AttributeError:
    JSONDecodeError = ValueError

class 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')
            return
        
        try:
            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))
            raise
        except requests.exceptions.ConnectionError:
            logging.error("消息发送失败,HTTP connection error!")
            raise
        except requests.exceptions.Timeout:
            logging.error("消息发送失败,Timeout error!")
            raise
        except requests.exceptions.RequestException:
            logging.error("消息发送失败, Request Exception!")
            raise
        else:
            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)

到了这里,关于飞书机器人webhook调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java项目中利用飞书自定义机器人Webhook向飞书群推送告警通知

    Java项目中利用飞书自定义机器人Webhook向飞书群推送告警通知

    今天来看一下如何在Java项目中利用飞书的自定义机器人Webhook向飞书群推送告警通知         企业存在给 特定群组 自动推送消息的需求,比如:监控报警推送、销售线索推送、运营内容推送等。        你可以在群聊中添加一个 自定义机器人 ,通过服务端调用  webh

    2023年04月14日
    浏览(12)
  • python调用飞书机器人发送文件

    python调用飞书机器人发送文件

    当前飞书webhook机器人还不支持发送文件类型的群消息,可以申请创建一个机器人应用来实现群发送文件消息。 创建机器人后,需要开通一系列权限,然后发布。由管理员审核通过后,才可使用。 包括如下的权限,可以获取群的chat_id。 开通权限发布应用后,可以取到两个重

    2024年02月06日
    浏览(14)
  • 【Postman】调用飞书机器人接口发送消息

    【Postman】调用飞书机器人接口发送消息

    1、进入飞书,新建一个群组,添加机器人 2、点击该机器人,复制webhook地址 3、打开postman,在url中输入该webhook地址,输入需要请求的json内容,点击发送 内容例如: 4、飞书就会收到对应的消息推送了 5、请求内容的格式参见飞书机器人文档 自定义机器人指南

    2024年02月13日
    浏览(10)
  • python 飞书 机器人

    python 飞书 机器人

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/e4758957286342999266a4ed01e19d59.png

    2024年01月23日
    浏览(10)
  • 【WeLink群消息机器人webhook介绍】

    WeLink群消息机器人webhook介绍 一、背景:如何理解bot和webhook? 机器人(bot)是一种新型的应用形态,新的协同方式对话即服务,在应用中典型形态即为bot,用户在聊天界面跟一个机器人的虚拟账号,通过对话的方式,实现跟后端系统的交互,如主动发送消息给机器人,机器人

    2024年01月21日
    浏览(9)
  • php对接飞书机器人

    php对接飞书机器人

    有同事接到对接飞书机器人任务,开发中遇到响应错误: 意思应该就是签名错误或者时间戳不在有效范围内等,官方文档解释: 时间戳是取的实时的,也确认过了没问题,那基本确认就是签名错误了。 按照文档尝试调试了一下还是一样的结果,如果把后台安全设置那个签名

    2024年02月07日
    浏览(10)
  • Alertmanager实现企业微信机器人webhook告警

    Alertmanager实现企业微信机器人webhook告警

    由于企业微信更新问题,现在已经无法直接使用创建应用后在alertmanager的配置文件中定义企业id及secret就可以发送告警信息了,除非填写备案后域名;为了我们这种个人开发者非常的不便,所以本文档是为了解决想使用企业微信告警但又无法备案的朋友;下面只是我的操作过

    2024年04月28日
    浏览(9)
  • 飞书ChatGPT机器人 – 打造智能问答助手

    飞书ChatGPT机器人 – 打造智能问答助手

    在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使用到了Git克隆项目,需提前安装好Git,克隆的项目是Go语言项目,所以需提前安装Go语言环境。 Git Go1.20 首次注册飞书,我们可以创建个人账号 进入后 我们创建一个飞书 企业自建项目 然后设置机器人名称和描述,下面

    2024年02月16日
    浏览(11)
  • zabbix对接飞书机器人告警

    zabbix对接飞书机器人告警

    一、zabbix后台配置 1. 创建报警媒介类型 2. 导入脚本 目录在/usr/lib/zabbix/alertscripts/feishu.py 二、安装python3.8 1. 安装依赖项: 2. 下载Python 3.8: 3. 解压文件并进入目录: 4. 配置: 5. 编译并安装: 6. 验证安装: 如果输出结果为Python 3.8.0,则表示安装成功。 注意:安装过程可能需

    2024年02月05日
    浏览(8)
  • 飞书机器人小助手@特定人

    飞书机器人小助手@特定人

    文档接口: https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN 创建机器人小助手   消息推送测试 获取艾特人 open_id @特定人请求

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包