python web微信应用(三) 微信智能聊天机器人
生活随笔
收集整理的這篇文章主要介紹了
python web微信应用(三) 微信智能聊天机器人
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 一、webwx 模塊介紹
- 二、微信智能聊天
前言
本篇文章作為系列第三篇文章,將實現一個微信智能聊天機器人:
系列其它文章請參考:
python web微信應用(一) 微信協議分析
python web微信應用(二) webwx 模塊源碼
python web微信應用(四) 監測自己被群組消息 @
python web微信應用(五) 自動下載接收的圖片/語音/視頻
python web微信應用(六) 監測微信撤回的消息
一、webwx 模塊介紹
當前支持消息來源: 群組、公眾號、聯系人、自己
當前支持消息類型: 文本,位置,鏈接,圖片,語音,視頻,名片,表情,文件,撤回
不同消息類型所攜帶的字段也不同,具體如下:
| 必有字段 | 'senderType': 字符串類型,取值 “GROUP/SUBSCRIPTION/CONTACT/MYSELF/UNSUPPORTED”, 表示消息來源于群組/公眾號/聯系人/自己/不支持 'senderName': 字符串類型,表示發送者的身份,由系統分配,@@開頭表示群組,@開頭表示聯系人或者公眾號 'msgType': 字符串類型,取值 “TEXT/POSITION/IMAGE/VOICE/VIDEO/CARD/ANIMATION/FILE/REVOKE/UNSUPPORTED”, 表示消息類型是文本/位置/圖片/語音/視頻/名片/表情/文件/撤回/不支持 'msgId': 字符串類型,表示消息的唯一 id,由系統分配 |
| senderType: | |
| GROUP | 'groupNickName': 字符串類型,表示發送者所在的群組昵稱 'userNickName': 字符串類型,表示發送者的昵稱 'userDisplayName': 字符串類型,表示發送者設置的自己在該群的顯示名稱,沒有則為 ‘’ 'meIsAt': 布爾類型,表示自己是否被 @ |
| SUBSCRIPTION | 'subscriptionNickName': 字符串類型,表示發送者公眾號昵稱 |
| CONTACT | 'contactNickName': 字符串類型,表示發送者昵稱 'contactRemarkName': 字符串類型,表示發送者備注名 |
| MYSELF | 'myNickName': 字符串類型,表示自己的昵稱 |
| msgType: | |
| TEXT | 'content': 字符串類型,表示接收到的消息內容 |
| POSITION | 'x': 字符串類型,浮點數,表示緯度 'y': 字符串類型,浮點數,表示經度 'scale': 字符串類型,整數,表示縮放比例 'label': 字符串類型,表示位置的標簽名稱 'poiname': 字符串類型,表示位置的具體名稱 |
| IMAGE | 'imgHeight': 整數類型,表示圖片高度 'imgWidth': 整數類型,表示圖片寬度 'mediaId': 字符串類型,表示圖片在服務器的資源 id,由系統分配,用于下載使用 'downloadFunc': 函數類型,表示下載圖片的函數 調用 msg['downloadFunc'](msg),將下載圖片到當前目錄,保存文件名為 img_mediaId.jpg |
| VOICE | 'voiceLength': 整數類型,表示語音時長,單位毫秒 'mediaId': 字符串類型,表示圖片在服務器的資源 id,由系統分配,用于下載使用 'downloadFunc': 函數類型,表示下載語音的函數 調用 msg['downloadFunc'](msg),將下載語音到當前目錄,保存文件名為 voice_mediaId.mp3 |
| VIDEO | 'imgHeight': 整數類型,表示視頻高度 'imgWidth': 整數類型,表示視頻寬度 'playLength': 整數類型,表示視頻時長,單位秒 'mediaId': 字符串類型,表示視頻在服務器的資源 id,由系統分配,用于下載使用 'downloadFunc': 函數類型,表示下載視頻的函數 調用 msg['downloadFunc'](msg),將下載視頻到當前目錄,保存文件名為 video_mediaId.mp4 |
| CARD | 'username': 字符串類型,表示微信號 'nickname': 字符串類型,表示昵稱 'alias': 字符串類型,表示別名 'province': 字符串類型,表示省 'city': 字符串類型,表示城市 'sex': 字符串類型,表示性別,0-未知 1-男 2-女 'regionCode': 字符串類型,表示注冊地 |
| ANIMATION | 'imgHeight': 整數類型,表示表情高度 'imgWidth': 整數類型,表示表情寬度 |
| FILE | 'fileName': 字符串類型,表示文件名 'encryFileName': 字符串類型,表示 encry 文件名 'fileSize': 字符串類型,表示文件大小,單位字節 'mediaId': 字符串類型,表示視頻多媒體 id,由系統分配,用于下載使用 'downloadFunc': 函數類型,表示下載文件的函數 調用 msg['downloadFunc'](msg),將下載文件到當前目錄,保存文件名為 ‘fileName’ 字段值 |
| REVOKE | 'revokedMsgId': 字符串類型,表示被撤回的那條消息的 id |
| UNSUPPORTED | 沒有可選字段 |
二、微信智能聊天
智能聊天機器人實現分為三個步驟:
通過 webwx 模塊可以接收聯系人/群組/公眾號發來的文本/圖片/語音/視頻/位置/表情/文件等消息類型,不同消息類型能獲取到不同的消息內容
通過 emotibot 或 tuling 機器人,我們可以獲取智能聊天內容。首先在這些機器人網站上申請一個賬號,獲取 API_ID 或者 APP_KEY 等信息,然后 POST 請求就可以獲取智能的聊天回復內容
通過 webwx 模塊可以發送 文本、圖片、視頻、普通文件到聯系人/群組/公眾號
下面是智能聊天的完整代碼:
對來自聯系人,備注名是張三,消息類型是普通文本的消息進行特定處理,通過emotibot 或 tuling 機器人獲取聊天內容,然后發送回給張三,從而實現智能聊天
總結
以上是生活随笔為你收集整理的python web微信应用(三) 微信智能聊天机器人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机屏幕关于VGA、QVGA、WVGA、
- 下一篇: IP转发