Github項(xiàng)目地址
飛書機(jī)器人
前言
如果你想添加新的對(duì)話邏輯,你只需要在ChatApi.py
中添加新的if條件判斷語句即可。如果你能開發(fā)出新功能,請(qǐng)?jiān)趥}庫中提出Pull requests合并請(qǐng)求,我將感激不盡!
更新與修復(fù)
2023年9月1日更新
更新了對(duì)話機(jī)器人返回幫助界面功能,用戶發(fā)送“幫助”,返回機(jī)器人使用說明
2023年8月30日更新
更新了對(duì)話機(jī)器人返回微博熱搜榜功能,用戶發(fā)送“熱搜”,返回即時(shí)熱搜榜
2023年8月28日更新
1.將原先的TestApi.py
整合進(jìn)ChatApi.py
中,省去了繁瑣的目錄與代碼文件
2.更新了請(qǐng)求地址配置方法,只需要一個(gè)文件ChatApi.py
即可
飛書機(jī)器人介紹
機(jī)器人概述 - 開發(fā)指南 - 開發(fā)文檔 - 飛書開放平臺(tái) (feishu.cn)
飛書機(jī)器人分為兩種,一種是自定義機(jī)器人,一種是應(yīng)用機(jī)器人。
自定義機(jī)器人
只能在群聊中使用,只能完成比較固定的消息推送。
webhook獲取方法:
1.進(jìn)入目標(biāo)群組,在群組右上角點(diǎn)擊更多按鈕,并點(diǎn)擊 設(shè)置。
2.在右側(cè) 設(shè)置 界面,點(diǎn)擊 群機(jī)器人。
3.在 群機(jī)器人 界面點(diǎn)擊 添加機(jī)器人。
4.在 添加機(jī)器人 對(duì)話框,找到 自定義機(jī)器人,并 添加。
5.設(shè)置自定義機(jī)器人的名稱與描述,并點(diǎn)擊 添加。
6.獲取自定義機(jī)器人的 webhook 地址,并點(diǎn)擊 完成
應(yīng)用機(jī)器人
功能很多,開發(fā)性高,靈活性強(qiáng)。需要有企業(yè)賬戶,支持對(duì)話互動(dòng)等多種功能。
app_id與app_secret獲取方法
1.用企業(yè)賬戶,在開發(fā)者后臺(tái)中,創(chuàng)建企業(yè)自建應(yīng)用
2.找到app_id與qpp_secret
3.添加應(yīng)用能力,選擇機(jī)器人
4.添加以下權(quán)限
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
開啟事件訂閱:
若要使機(jī)器人有互動(dòng)對(duì)話功能,需要填寫請(qǐng)求配置地址,并添加接收消息v2.0和消息已讀v2.0事件
請(qǐng)求地址配置方法
1.使用反向代理工具ngrok完成內(nèi)網(wǎng)穿透
使用docker啟動(dòng)ngrok
docker run -it -e NGROK_AUTHTOKEN=<token> ngrok/ngrok http 8080
NGROK_AUTHTOKEN獲取方法:
1.1 進(jìn)入ngrok官網(wǎng)https://ngrok.com/,注冊(cè)ngrok賬號(hào)并下載ngrok
1.2 獲取Authtoken
獲取公網(wǎng)地址后,按下Ctrl + P,然后再按下Ctrl + Q,使容器后臺(tái)運(yùn)行。
1.3 在FeishuBot/public/chat/conf.py
中填寫相關(guān)信息
先運(yùn)行ChatApi.py
python3 ChatApi.py
到飛書后臺(tái)填寫請(qǐng)求配置地址,格式為https://123456.ngrok-free.app/query/message
期間保證ngrok在后臺(tái)一直運(yùn)行
2.使用Kubernetes暴露公網(wǎng)
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 # 對(duì)外暴露的端口
targetPort: 8080 # Flask應(yīng)用容器監(jiān)聽的端口
nodePort: 39378
然后獲取檢驗(yàn)用的請(qǐng)求配置地址
kubectl apply -f deploy.yaml
kubectl get svc # 獲取端口為39378,記得在服務(wù)器開放
地址示例:http://1.2.3.4:3XXXXX/query/message
功能
- 青年大學(xué)習(xí)提醒
- 天氣通知
- 互動(dòng)對(duì)話功能
- ChatGPT—引用網(wǎng)上項(xiàng)目
青年大學(xué)習(xí)提醒
實(shí)現(xiàn)每周一早上九點(diǎn),通知用戶完成青年大學(xué)習(xí)
點(diǎn)擊超鏈接跳轉(zhuǎn)微信
使用方法
自定義機(jī)器人:在FeishuBot/personal/conf.py
中填寫你的webhook
應(yīng)用機(jī)器人:在FeishuBot/public/send/conf.py
中填寫你的app_id和app_secret
開啟服務(wù):自定義機(jī)器人啟動(dòng)腳本FeishuBot/personal/qndxx-remind/run1.sh
? 應(yīng)用機(jī)器人啟動(dòng)腳本FeishuBot/public/send/qndxx-remind/run1.sh
chmod +x run1.sh
./run1.sh
天氣通知
實(shí)現(xiàn)每天早上七點(diǎn),向用戶推送天氣信息
普通天氣
出現(xiàn)災(zāi)害天氣時(shí),推送氣象臺(tái)預(yù)警信息,并附帶特殊天氣圖標(biāo)
使用方法
自定義機(jī)器人:在FeishuBot/personal/conf.py
中填寫你的webhook和指定城市
應(yīng)用機(jī)器人:在FeishuBot/public/send/conf.py
中填寫你的app_id和app_secret,指定城市
開啟服務(wù):自定義機(jī)器人啟動(dòng)腳本FeishuBot/personal/weather-remind/run2.sh
? 應(yīng)用機(jī)器人啟動(dòng)腳本FeishuBot/public/send/weather-remind/run2.sh
chmod +x run1.sh
./run2.sh
互動(dòng)對(duì)話功能
僅限應(yīng)用機(jī)器人
互動(dòng)對(duì)話邏輯
實(shí)現(xiàn)向應(yīng)用機(jī)器人發(fā)送特定信息,返回特定內(nèi)容
1.用戶發(fā)送”青年大學(xué)習(xí)“,機(jī)器人回復(fù)青年大學(xué)習(xí)通知內(nèi)容
2.用戶發(fā)送"查詢天氣:指定城市名"后,機(jī)器人回復(fù)需要監(jiān)測(cè)天氣城市的天氣信息。
城市名注意不要帶市和區(qū)。 如: 北京、南岸
3.用戶發(fā)送“熱搜”,機(jī)器人返回即時(shí)熱搜榜
4.如果你想添加新的對(duì)話邏輯,你只需要在ChatApi.py
中添加新的if條件判斷語句即可。如果你能開發(fā)出新功能,請(qǐng)?jiān)趥}庫中提出Pull requests合并請(qǐng)求,我將感激不盡!
ChatGPT
參考網(wǎng)上的項(xiàng)目,建議使用新的應(yīng)用機(jī)器人
飛書 ChatGPT 機(jī)器人 - 用 JavaScript 五分鐘開發(fā)一個(gè)飛書 ChatGPT 機(jī)器人 (aircode.cool)
BUG
1.用K8s配置請(qǐng)求地址時(shí),用于檢驗(yàn)時(shí)地址都是可用的,但是更改鏡像后,無法使用互動(dòng)對(duì)話功能
2.互動(dòng)對(duì)話功能在服務(wù)器上使用ngrok有點(diǎn)問題,在windows下完全可以使用
3.因?yàn)榕渲谜?qǐng)求地址時(shí)需要在固定地址的情況下改變鏡像,所以GitLab中的CI只跑通用于檢驗(yàn)的鏡像并部署在K8s,詳情請(qǐng)看.gitlab-ci.yaml文章來源:http://www.zghlxwxcb.cn/news/detail-769548.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-769548.html
到了這里,關(guān)于手把手自己制作一個(gè)飛書機(jī)器人的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!