《vbot微信聊天機器人微信聊天消息詳解(1):結(jié)構(gòu)詳解》要點:
本文介紹了vbot微信聊天機器人微信聊天消息詳解(1):結(jié)構(gòu)詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:web微信和微信機器人
Vbot 的內(nèi)置處理使消息變得多種多樣,也更便于程序的靈活處理。
所有消息類都繼承于 Illuminate\Support\Collection,Collection 實現(xiàn)了 ArrayAccess 接口,你把消息當成數(shù)組即可,取出屬性時只需把屬性名稱當作數(shù)組下標, 比如 $message['from']['NickName'] 。更多的消息操作方法可以參考:https://laravel-china.org/docs/laravel/5.4/collections
注意:每次接受到的消息都會存入緩存中,兩分鐘后過期,方便取出撤回消息。
每種消息都可能含有各自獨特的屬性,但它們都含有基礎(chǔ)屬性。
參數(shù) | 類型 | 描述 |
---|---|---|
type | string | 消息類型(每種消息都對應(yīng)一個 type 類型) |
username | string | 發(fā)送者的 Username,當為群消息時此值為 sender 的 username |
from | array | 消息來源 |
sender | array | 群消息發(fā)送者,個人發(fā)送時,本項為空 |
content | string | 經(jīng)過處理顯示在控制臺的消息 |
message | string | 轉(zhuǎn)格式后的消息 |
time | Carbon | 發(fā)送時間 |
fromType | string | 消息發(fā)送者類型 |
raw | array | 消息原始數(shù)據(jù)(完全不經(jīng)處理的原始數(shù)據(jù)) |
要點:
username :表示發(fā)送者的標識,每次vbot進程都是一樣的,因此在當前進程可以做為該用戶的唯一標識。
注意,消息不管是群發(fā)送,還是個人發(fā)送,[username]值都是發(fā)消息的那個個人的username,
(a)消息為群內(nèi)發(fā)送時,[username]是群內(nèi)發(fā)消息者的標識,而不是群的username,它等同于[sender][UserName]。
(b)當消息為個人發(fā)送時,[username]是發(fā)送者的標識,此時[sender]為空
message 、 content 、 raw 有什么區(qū)別?
raw: 是微信返回的原始數(shù)據(jù),其中夾雜著大量無用的數(shù)據(jù), Vbot 在處理 raw 時會取出有用的數(shù)據(jù)作為消息的屬性
message: message 是經(jīng)過 raw 處理而來的,例如對標簽、XML 的轉(zhuǎn)移,可以保存到數(shù)據(jù)庫。
content: content 是為了處理不便于在控制臺展示的數(shù)據(jù)。如 [表情] [視頻] [分享] 等等
【總結(jié)】message比較有用,可以保存入庫,可以做內(nèi)部操作,比如查找關(guān)鍵字。
fromType:消息發(fā)送者的類型,有以下幾種:
System 系統(tǒng)消息
Self 自己發(fā)送的消息
Group 群組消息
Friend 聯(lián)系人消息
Official 公眾號消息
Special 特殊賬號消息
Unknown 未知消息
注意首字母是大寫的。
from :來源
注意可能是好友,或群,或公眾號。[from]詳細記錄了發(fā)送者的信息。
如果是群發(fā)來的信息,就會有$message['sender'],保存了群里發(fā)消息的人的信息。
因此,通常你需要先用fromType來判斷消息發(fā)送者類型,再去取發(fā)消息的人信息。
time :注意這是一個對象,而不是數(shù)組。它的值如下:
[time] => Carbon\Carbon Object
(
[date] => 2018-03-11 10:03:45.000000
[timezone_type] => 3
[timezone] => Etc/GMT-8
)
消息發(fā)送時間獲取方法:$message['time']->date ,當然你也可以直接用接收消息時的time(),時間大致一樣。
舉例:
消息類型: $message['type']
消息來源昵稱: $message['from']['NickName'] (更多詳情可查閱 聯(lián)系人)
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14502.html