手把手自己制作一个飞书机器人

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

Github项目地址

飞书机器人

前言

如果你想添加新的对话逻辑,你只需要在ChatApi.py中添加新的if条件判断语句即可。如果你能开发出新功能,请在仓库中提出Pull requests合并请求,我将感激不尽!

更新与修复

2023年9月1日更新

更新了对话机器人返回帮助界面功能,用户发送“帮助”,返回机器人使用说明

飞书机器人开发,python,flask,飞书

2023年8月30日更新

更新了对话机器人返回微博热搜榜功能,用户发送“热搜”,返回即时热搜榜

飞书机器人开发,python,flask,飞书

2023年8月28日更新

1.将原先的TestApi.py整合进ChatApi.py中,省去了繁琐的目录与代码文件

2.更新了请求地址配置方法,只需要一个文件ChatApi.py即可

飞书机器人介绍

机器人概述 - 开发指南 - 开发文档 - 飞书开放平台 (feishu.cn)

飞书机器人分为两种,一种是自定义机器人,一种是应用机器人

自定义机器人

只能在群聊中使用,只能完成比较固定的消息推送。

webhook获取方法:

1.进入目标群组,在群组右上角点击更多按钮,并点击 设置

飞书机器人开发,python,flask,飞书

2.在右侧 设置 界面,点击 群机器人

飞书机器人开发,python,flask,飞书

3.在 群机器人 界面点击 添加机器人

4.在 添加机器人 对话框,找到 自定义机器人,并 添加

飞书机器人开发,python,flask,飞书

5.设置自定义机器人的名称与描述,并点击 添加

飞书机器人开发,python,flask,飞书

6.获取自定义机器人的 webhook 地址,并点击 完成

飞书机器人开发,python,flask,飞书

应用机器人

功能很多,开发性高,灵活性强。需要有企业账户,支持对话互动等多种功能。

app_idapp_secret获取方法

1.用企业账户,在开发者后台中,创建企业自建应用

飞书机器人开发,python,flask,飞书

2.找到app_id与qpp_secret

飞书机器人开发,python,flask,飞书

3.添加应用能力,选择机器人

飞书机器人开发,python,flask,飞书

4.添加以下权限

im:message,im:message.group_at_msg,im:message.group_at_msg:readonly,im:message.group_msg,im:message.p2p_msg,im:message.p2p_msg:readonly,im:message:readonly,im:chat:readonly,im:chat,im:message:send_as_bot

飞书机器人开发,python,flask,飞书

开启事件订阅

若要使机器人有互动对话功能,需要填写请求配置地址,并添加接收消息v2.0消息已读v2.0事件

飞书机器人开发,python,flask,飞书

请求地址配置方法

1.使用反向代理工具ngrok完成内网穿透

使用docker启动ngrok

docker run -it -e NGROK_AUTHTOKEN=<token> ngrok/ngrok http 8080

NGROK_AUTHTOKEN获取方法:

1.1 进入ngrok官网https://ngrok.com/,注册ngrok账号并下载ngrok

1.2 获取Authtoken

飞书机器人开发,python,flask,飞书

获取公网地址后,按下Ctrl + P,然后再按下Ctrl + Q,使容器后台运行。

飞书机器人开发,python,flask,飞书

1.3 在FeishuBot/public/chat/conf.py中填写相关信息

先运行ChatApi.py

python3 ChatApi.py

到飞书后台填写请求配置地址,格式为https://123456.ngrok-free.app/query/message

期间保证ngrok在后台一直运行

2.使用Kubernetes暴露公网

2.1 在FeishuBot/public/build-api填好conf.py中的信息,然后自己制作docker镜像

docker build -t docker的用户名/镜像名:<tag> .
docker push 做好的镜像

2.2在FeishuBot/public/build-api下,修改deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 1
  selector:
    matchLabels:
      app: api
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
      - name: api
        image:  # 在build-api目录下制作的镜像
        ports:
        - containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: api
spec:
  selector:
    app: api
  type: NodePort
  ports:
  - name: http  
    protocol: TCP
    port: 80  # 对外暴露的端口
    targetPort: 8080 # Flask应用容器监听的端口
    nodePort: 39378

然后获取检验用的请求配置地址

kubectl apply -f deploy.yaml
kubectl get svc # 获取端口为39378,记得在服务器开放

地址示例:http://1.2.3.4:3XXXXX/query/message

飞书机器人开发,python,flask,飞书

功能

  • 青年大学习提醒
  • 天气通知
  • 互动对话功能
  • ChatGPT—引用网上项目

青年大学习提醒

实现每周一早上九点,通知用户完成青年大学习

点击超链接跳转微信

飞书机器人开发,python,flask,飞书

使用方法

自定义机器人:在FeishuBot/personal/conf.py中填写你的webhook

应用机器人:在FeishuBot/public/send/conf.py中填写你的app_id和app_secret

开启服务:自定义机器人启动脚本FeishuBot/personal/qndxx-remind/run1.sh

​ 应用机器人启动脚本FeishuBot/public/send/qndxx-remind/run1.sh

chmod +x run1.sh
./run1.sh

天气通知

实现每天早上七点,向用户推送天气信息

普通天气

飞书机器人开发,python,flask,飞书

出现灾害天气时,推送气象台预警信息,并附带特殊天气图标

飞书机器人开发,python,flask,飞书

使用方法

自定义机器人:在FeishuBot/personal/conf.py中填写你的webhook和指定城市

应用机器人:在FeishuBot/public/send/conf.py中填写你的app_id和app_secret,指定城市

开启服务:自定义机器人启动脚本FeishuBot/personal/weather-remind/run2.sh

​ 应用机器人启动脚本FeishuBot/public/send/weather-remind/run2.sh

chmod +x run1.sh
./run2.sh

互动对话功能

仅限应用机器人

互动对话逻辑

飞书机器人开发,python,flask,飞书

实现向应用机器人发送特定信息,返回特定内容

1.用户发送”青年大学习“,机器人回复青年大学习通知内容

飞书机器人开发,python,flask,飞书

2.用户发送"查询天气:指定城市名"后,机器人回复需要监测天气城市的天气信息。

城市名注意不要带市和区。 如: 北京、南岸

飞书机器人开发,python,flask,飞书

飞书机器人开发,python,flask,飞书

3.用户发送“热搜”,机器人返回即时热搜榜
飞书机器人开发,python,flask,飞书

4.如果你想添加新的对话逻辑,你只需要在ChatApi.py中添加新的if条件判断语句即可。如果你能开发出新功能,请在仓库中提出Pull requests合并请求,我将感激不尽!

ChatGPT

参考网上的项目,建议使用新的应用机器人

飞书 ChatGPT 机器人 - 用 JavaScript 五分钟开发一个飞书 ChatGPT 机器人 (aircode.cool)

BUG

1.用K8s配置请求地址时,用于检验时地址都是可用的,但是更改镜像后,无法使用互动对话功能

2.互动对话功能在服务器上使用ngrok有点问题,在windows下完全可以使用

3.因为配置请求地址时需要在固定地址的情况下改变镜像,所以GitLab中的CI只跑通用于检验的镜像并部署在K8s,详情请看.gitlab-ci.yaml

飞书机器人开发,python,flask,飞书文章来源地址https://www.toymoban.com/news/detail-769548.html

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

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

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

相关文章

  • 【手把手教你制作一个简易版的shell】

    为了简便,命令行中的提示符我们可以直接用printf打印,而具体执行命令可以交给子进程去做,现在的关键是如何将获得的命令行中的命令切割。我们在学习C语言时提到了strtok函数,正好这个函数可以用来作为切割。 基本框架: 不知道大家注意到了没有,我们从键盘中读取

    2023年04月16日
    浏览(51)
  • QT初体验:手把手带你写一个自己的串口助手

    本文记录一下用QT Creator 写一个基本功能齐全的串口助手的过程,整个工程只有几百行代码,跟着做下来对新手来说可以更快了解整个QT项目的开发过程和一些常用控件的使用方法。对新手学习QT能增强信心,话不多说,正文开始 先看成品: (1) 创建QMainWindow工程。这一步就不

    2024年02月05日
    浏览(58)
  • 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)

    一篇博客带你实现一个真正的项目!  先来看看它是什么样式的: 目录: 1、大体步骤🦖:         1、创建Maven项目🦕         2、引入依赖🦕         3、创建必要的目录🦕         4、编写代码🦕         5、打包部署(基于SmartTomcat)🦕         

    2024年02月06日
    浏览(55)
  • 用HTML语言制作一个非常浪漫的生日祝福网,手把手教你制作炫酷生日祝福网页

    明天就是女朋友的生日了, 是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧! HTML生日祝福网页制作(粉色主题)程序员专属生日表白网站 💬 注:以下代码为部分演示,如需完整

    2024年02月16日
    浏览(52)
  • 超详细AI二维码制作教程:手把手教你如何用Stable Diffusion 生成一个创意二维码?

    AI已来,未来已来! 来势汹汹的人工智能,如同创世纪的洪水,正在全世界的范围内引发一场史无前例的科技革命。AI正在改变世界!而我们正是这场巨变的见证者。 今天我们要介绍的内容就是:如何利用AI工具Stable Diffusion,生成你的专属创意二维码? (下文包含详细图文教

    2024年02月16日
    浏览(58)
  • 手把手教python打包exe,打包一个简易的小程序。tkinter,python初学者。编程初学者作业:用*填充出自己的名字

    【声明】这篇文章可能写的很差,作者技术不够。但是一定原创,一定用最简单的语言,最详细的描述让没有经验的读者能够懂得 【首言】exe是电脑上直接点击就可以使用的。当你写了一个.py文件,可以实现你的有趣功能,于是你高兴的把这个发送给你的朋友,但是你的朋友

    2024年02月01日
    浏览(50)
  • 手把手教!搭建自己的免费服务器

    最近总是想搭建自己的网站,奈何皮夹里空空如也,服务器也租不起,更别说域名了。于是我就寻思能否自己搭建个服务器,还不要钱呢? 还真行!!! 经过几天的冲浪,我发现有两个免费的建站工具:Apache 和 Nginx 由于两个工具建站方法差不多,所以我就以 Nginx 为例 1. 安

    2024年02月12日
    浏览(51)
  • 手把手教你搭建自己本地的ChatGLM

    如果能够本地自己搭建一个ChatGPT的话,训练一个属于自己知识库体系的人工智能AI对话系统,那么能够高效的处理应对所属领域的专业知识,甚至加入职业思维的意识,训练出能够结合行业领域知识高效产出的AI。这必定是十分高效的生产力工具,且本地部署能够保护个人数

    2024年02月03日
    浏览(67)
  • 手把手教你使用Segformer训练自己的数据

    使用Transformer进行语义分割的简单高效设计。 将 Transformer 与轻量级多层感知 (MLP) 解码器相结合,表现SOTA!性能优于SETR、Auto-Deeplab和OCRNet等网络 相比于ViT,Swin Transfomer计算复杂度大幅度降低,具有输入图像大小线性计算复杂度。Swin Transformer随着深度加深,逐渐合并图像块来

    2024年01月20日
    浏览(70)
  • AI绘画怎么弄?手把手教你制作

    最近关于AI绘画的话题是非常火爆的,小伙伴们了解AI绘画吗?这是一种由我们输入关于画面的描述,然后由AI根据这些描述自动生成画面的技术。现在有很多软件都可以实现AI绘画的操作,那你们知道AI绘画特效软件哪个好吗?想要制作AI绘画的小伙伴,下面就为你们带

    2024年02月11日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包