Github项目地址
飞书机器人
前言
如果你想添加新的对话逻辑,你只需要在ChatApi.py
中添加新的if条件判断语句即可。如果你能开发出新功能,请在仓库中提出Pull requests合并请求,我将感激不尽!
更新与修复
2023年9月1日更新
更新了对话机器人返回帮助界面功能,用户发送“帮助”,返回机器人使用说明
2023年8月30日更新
更新了对话机器人返回微博热搜榜功能,用户发送“热搜”,返回即时热搜榜
2023年8月28日更新
1.将原先的TestApi.py
整合进ChatApi.py
中,省去了繁琐的目录与代码文件
2.更新了请求地址配置方法,只需要一个文件ChatApi.py
即可
飞书机器人介绍
机器人概述 - 开发指南 - 开发文档 - 飞书开放平台 (feishu.cn)
飞书机器人分为两种,一种是自定义机器人,一种是应用机器人。
自定义机器人
只能在群聊中使用,只能完成比较固定的消息推送。
webhook获取方法:
1.进入目标群组,在群组右上角点击更多按钮,并点击 设置。
2.在右侧 设置 界面,点击 群机器人。
3.在 群机器人 界面点击 添加机器人。
4.在 添加机器人 对话框,找到 自定义机器人,并 添加。
5.设置自定义机器人的名称与描述,并点击 添加。
6.获取自定义机器人的 webhook 地址,并点击 完成
应用机器人
功能很多,开发性高,灵活性强。需要有企业账户,支持对话互动等多种功能。
app_id与app_secret获取方法
1.用企业账户,在开发者后台中,创建企业自建应用
2.找到app_id与qpp_secret
3.添加应用能力,选择机器人
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
开启事件订阅:
若要使机器人有互动对话功能,需要填写请求配置地址,并添加接收消息v2.0和消息已读v2.0事件
请求地址配置方法
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
获取公网地址后,按下Ctrl + P,然后再按下Ctrl + Q,使容器后台运行。
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
功能
- 青年大学习提醒
- 天气通知
- 互动对话功能
- ChatGPT—引用网上项目
青年大学习提醒
实现每周一早上九点,通知用户完成青年大学习
点击超链接跳转微信
使用方法
自定义机器人:在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
天气通知
实现每天早上七点,向用户推送天气信息
普通天气
出现灾害天气时,推送气象台预警信息,并附带特殊天气图标
使用方法
自定义机器人:在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
互动对话功能
仅限应用机器人
互动对话逻辑
实现向应用机器人发送特定信息,返回特定内容
1.用户发送”青年大学习“,机器人回复青年大学习通知内容
2.用户发送"查询天气:指定城市名"后,机器人回复需要监测天气城市的天气信息。
城市名注意不要带市和区。 如: 北京、南岸
3.用户发送“热搜”,机器人返回即时热搜榜
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文章来源:https://www.toymoban.com/news/detail-769548.html
文章来源地址https://www.toymoban.com/news/detail-769548.html
到了这里,关于手把手自己制作一个飞书机器人的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!