機器人支持回調接口配置(詳細教程)

大家伙,我是雄雄,歡迎關注微信公眾號:雄雄的小課堂。

一、前言

今天,給大家介紹一下,如何在機器人中配置回調地址和接口編寫。很多時候我們可能有這樣的場景,收到消息后,想自己處理一下消息的內容,然后操作完后給用戶返回出去,那么,這種場景下,就離不開接口的回調了。

目前支持的回調:

  • 收到消息
  • 撤回消息
  • 注入成功
  • 登錄成功
  • 進群
  • 退群
  • 通過好友申請
  • 轉賬退款
  • 轉賬收款
  • …其他的還在開發中

二、開發回調接口

我這邊以python為例,因為回調接口我們需要接收一個json格式的數據,所以,先創建個類,如下所示:


from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional, List
from fastapi import APIRouterapp = FastAPI()huidiao_router = APIRouter()# 消息實體
class CallBackDataEntity(BaseModel):wxid: Optional[str] = None  # wxidwxNum: Optional[str] = None  # 微信號nick: Optional[str] = None  # 昵稱device: Optional[str] = None  # 登錄設備phone: Optional[str] = None  # 電話avatarUrl: Optional[str] = None  # 頭像country: Optional[str] = None  # 國家province: Optional[str] = None  # 省city: Optional[str] = None  # 城市email: Optional[str] = None  # 郵箱qq: Optional[str] = None  # QQtimeStamp: Optional[int] = None # 時間戳fromType: Optional[int] = None # 來源類型:1|私聊 2|群聊 3|公眾號# 消息類型:1|文本 3|圖片 34|語音 42|名片 43|視頻 47|動態表情# 48|地理位置 49|分享鏈接或附件 2001|紅包 2002|小程序# 2003|群邀請 10000|系統消息# 60 撤回消息  61 登錄成功  62退群 63 進群 64通過好友申請 65注入成功 66轉賬msgType: Optional[int] = NonemsgSource: Optional[int] = None # 消息來源:0|別人發送 1|自己手機發送fromWxid: Optional[str] = None # fromType=1時為好友wxid,fromType=2時為群wxid,fromType=3時公眾號wxidfromNick: Optional[str] = None # fromType=1時為好友wxid,fromType=2時為群昵稱,fromType=3時公眾號昵稱finalFromWxid: Optional[str] = None  # 僅fromType=2時有效,為群內發言人wxidfinalFromNick: Optional[str] = None  # 僅fromType=2時有效,為群內發言人昵稱atWxidList: Optional[list] = None  # 僅fromType=2,且msgSource=0時有效,為消息中艾特人wxid列表silence: Optional[int] = None # 僅fromType=2時有效,0membercount: Optional[int]= None  # 僅fromType=2時有效,群成員數量signature: Optional[str] = None# 消息內容msg: Optional[str]= None# 性別sex: Optional[str]= None# 創建get方法def get(self, param):return getattr(self, param)

接下來就比較簡單了,寫個接口,接收一下消息就行。


# 回調接口信息處理
@huidiao_router.post("/receive_message_callback")
async def receive_message(data: CallBackDataEntity):# 將收到的消息轉換成jsondata = data.dict()print(f"接收到了回調消息,內容是:{data}")# 這里可以添加你的業務邏輯return {"message": "success"}

可以從實體中看到,我們將所有關鍵信息都已經傳遞到回調接口中,剩下的實現就得看自己的了。

收到消息的json:


{"atWxidList": [],"finalFromNick": "雄雄的小課堂","finalFromWxid": "wxid_ehfdz38cq3bt22","fromNick": "雄雄的大家庭","fromType": 2,"fromWxid": "47747688531@chatroom","membercount": 4,"msg": "哈哈","msgSource": 0,"msgType": 1,"signature": "V1_HbNcDfZr|v1_HbNcDfZr","silence": 0,"timeStamp": "1716713595"
}

其他類型的消息也都差不多,只不過,需要注意一下:msgType的值,各個值的注釋如下:

消息類型:1|文本 3|圖片 34|語音 42|名片 43|視頻 47|動態表情 48|地理位置 49|分享鏈接或附件 2001|紅包 2002|小程序 2003|群邀請 10000|系統消息 60 撤回消息 61 登錄成功 62退群 63 進群 64通過好友申請 65注入成功 66轉賬

60以后得都是我們回調事件用到的,其他的事收到的消息用到的。

三、服務端配置回調地址

首先,我們需要從服務端上,將回調地址配置一下,如下所示:

找到【基礎配置】中的【回調接口配置】,然后點擊新增按鈕,選擇接口類型、接口地址,備注可以填可以不填。

我這邊使用了個測試的地址:http://127.0.0.1:7582/callback/receive_message_callback

信息填寫完成后,點擊確定即可,然后最重要的一步,就是【同步】功能,需要將服務端的配置信息,發送到客戶端的配置文件中,然后就可以使用了。

四、測試

我們從群里發個消息,可以看到日志中就會輸出來回調的信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16412.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux】Linux的基本指令_2

文章目錄 二、基本指令8. man9. nano 和 cat10. cp11. mv12. echo 和 > 和 >> 和 <13. more 和 less14. head 和 tail 和 | 未完待續 二、基本指令 8. man Linux的命令有很多參數&#xff0c;我們不可能全記住&#xff0c;我們可以通過查看聯機手冊獲取幫助。訪問…

基于門控的循環神經網絡:GRU

門控循環單元&#xff08;GatedRecurrentUnit&#xff0c;GRU&#xff09;網絡&#xff0c;也是一種基于門控的循環神經網絡&#xff0c;但是名氣不如LSTM大&#xff0c;GRU是對LSTM的一種改版&#xff0c;可以理解為是LSTM的簡化版。LSTM有三個門&#xff0c;輸入門&#xff0…

【C++】牛客 ——DP36 abb

?題目鏈接&#xff1a; DP36 abb ?題目描述 leafee 最近愛上了 abb 型語句&#xff0c;比如“疊詞詞”、“惡心心” leafee 拿到了一個只含有小寫字母的字符串&#xff0c;她想知道有多少個 "abb" 型的子序列&#xff1f; 定義&#xff1a; abb 型字符串滿足以下…

perl:用 Net::Server 創建簡單的流媒體服務器

這是一個使用Perl Net::Server 模塊創建的簡單流媒體服務器示例&#xff0c;它能夠播放.flv文件。 首先&#xff0c;確保安裝了Net::Server模塊&#xff0c;如果沒有安裝&#xff0c;可以使用CPAN來安裝它&#xff1a; 運行 cpan Net::Server RHANDOM/Net-Server-2.014.tar.…

力扣刷題--448. 找到所有數組中消失的數字【簡單】

題目描述 給你一個含 n 個整數的數組 nums &#xff0c;其中 nums[i] 在區間 [1, n] 內。請你找出所有在 [1, n] 范圍內但沒有出現在 nums 中的數字&#xff0c;并以數組的形式返回結果。 示例 1&#xff1a; 輸入&#xff1a;nums [4,3,2,7,8,2,3,1] 輸出&#xff1a;[5,6…

Python零基礎-中【詳細】

接上篇繼續&#xff1a; Python零基礎-上【詳細】-CSDN博客 目錄 十、函數式編程 1、匿名函數lambda表達式 &#xff08;1&#xff09;匿名函數理解 &#xff08;2&#xff09;lambda表達式的基本格式 &#xff08;3&#xff09;lambda表達式的使用場景 &#xff08;4&…

js 實現貪心算法

貪心算法是一種在每一步選擇中都采取在當前狀態下最好或最優的選擇&#xff0c;從而希望導致結果是全局最好或最優的算法策略。請注意&#xff0c;貪心算法并不總是能保證得到全局最優解&#xff0c;但在某些問題上&#xff0c;它可以提供足夠好的解決方案。下面是一個使用Java…

前端知識1-3:模塊化+瀏覽器詳解

script標簽兩個變量參數 - async & defer <script src"main.js" async></script>普通 - 解析到標簽&#xff0c;立刻pending&#xff0c;并且下載執行defer - 解析到標簽&#xff0c;開始異步下載&#xff0c;解析完成之后開始執行async - 解析到標簽…

內存函數詳解,包含部分字符串函數

目錄 一&#xff0c;memcpy內存函數的介紹 二memmove函數的介紹 三&#xff0c;memset的函數使用 四&#xff0c;memcmp的介紹 五&#xff0c;內存函數的模擬實現&#xff0c;以及一個字符串函數strstr的模擬實現 5.1memcpy函數的實現 5.2memmove的模擬實現 5.3memcmp的模擬…

Shell環境變量深入:自定義系統環境變量

Shell環境變量深入&#xff1a;自定義系統環境變量 目標 能夠自定義系統級環境變量 全局配置文件/etc/profile應用場景 當前用戶進入Shell環境初始化的時候會加載全局配置文件/etc/profile里面的環境變量, 供給所有Shell程序使用 以后只要是所有Shell程序或命令使用的變量…

H.機房【藍橋杯】/數組鏈式前向星建圖+堆優化版dijkstra

機房 數組鏈式前向星建圖堆優化版dijkstra #include<iostream> #include<queue> #include<cstring> #include<vector> using namespace std; typedef pair<int,int> pii; //無向圖開兩倍 int e[200005],ne[200005],v[200005],h[200005],du[1000…

STL---unordered set和unordered multiset【無序集合】

1.1 定義及初始化&#x1f357; 下面列出常用的初始化方式 #include <unordered_set> #include <iostream> using namespace std; //輸出s中的所有元素 template<typename T> void Show(const T& s) {for (auto& x : s) …

Python的pip配置、程序運行、生成exe文件

一、安裝Python 通過官網下載對應的版本&#xff0c;安裝即可。 下載地址&#xff1a;Download Python | Python.org Python標準庫查看&#xff08;Python自帶庫&#xff09; Python 標準庫文檔 安裝Python的時候&#xff0c;如果選第二個自定義安裝要記得勾選安裝pip 二、…

2024/05/25學習記錄

1、面經復習&#xff1a;前端廣度 2、代碼隨想錄刷題&#xff1a;動態規劃 3、rosebush 完成input組件基礎

閑置商標轉讓出現這些狀態時注意!

近日以前做轉讓的一個朋友的商標轉讓證明下來&#xff0c;正好是2個半月&#xff0c;普推知產老楊發現這個時間也太快&#xff0c;以前差不多四個月左右&#xff0c;有些朋友需要購買閑置商標&#xff0c;3個月內所有權就變成自己的。 在購買閑置商標時要注意有一些細節&#x…

Python限制輸入的數范圍

在Python中&#xff0c;我們可以使用多種方法來限制用戶輸入的數值范圍。 1.使用while循環和try-except語句的方法 以下是一個使用while循環和try-except語句的示例&#xff0c;該示例將要求用戶輸入一個在指定范圍內的整數。 假設我們要限制用戶輸入的數在1到100之間&#…

MySQL的索引, 到底怎么創建?

目錄 前言 MySQL的數據結構 索引是一把雙刃劍 索引創建原則 如何給一個列挑選索引? 索引列的基數, 要盡量小 索引列的類型盡量小 索引長字符串的前綴 不要對索引列進行計算操作或者函數計算. 不要老想著查詢, 想想插入該怎么辦? 避免索引冗余和重復 前言 今天在…

TOTP 算法實現:雙因素認證的基石(C/C++代碼實現)

雙因素認證&#xff08;Two-Factor Authentication, 2FA&#xff09;扮演著至關重要的角色。它像是一道額外的防線&#xff0c;確保即便密碼被竊取&#xff0c;不法分子也難以輕易突破。在眾多雙因素認證技術中&#xff0c;基于時間的一次性密碼&#xff08;Time-Based One-Tim…

ubuntu/部分docker容器無法訪問https站點

ubuntu/部分docker容器無法訪問https站點 解決方案 解決方案 默認的系統內可能沒有安裝根證書&#xff0c;需要安裝一下 apt install ca-certificates如果官方源比較慢&#xff0c;可以換為國內源&#xff0c;但是不要使用https