[toc]
在 Vbot 運行的每個階段,都會觸發一個監聽器,你可以選擇是否進行某些個性化的處理。
### 獲取實例:
```
use Hanson\Vbot\Foundation\Vbot;
use Illuminate\Support\Collection;
// ...
$vbot = new Vbot($config);
// 獲取監聽器實例
$observer = $vbot->observer;
```
### API列表
##### 二維碼監聽器
在登錄時會出現二維碼需要掃碼登錄。而這個二維碼鏈接也將傳到二維碼監聽器中。
```
$observer->setQrCodeObserver(function($qrCodeUrl){
});
```
##### 登錄成功監聽器
登錄成功時回調。無論是第一次登錄還是免掃碼登錄均會觸發。
```
$observer->setLoginSuccessObserver(function(){
});
```
##### 免掃碼成功監聽器
免掃碼登錄成功時回調。
```
$observer->setReLoginSuccessObserver(function(){
});
```
##### 程序退出監聽器
程序退出時回調。
```
$observer->setExitObserver(function(){
});
```
##### 好友監聽器
此回調僅在初始化好友時執行。
變量 $contacts 含有數組下表 ‘friends’,’groups’,’officials’,’special’,’members’
```
$observer->setFetchContactObserver(function(array $contacts){
print_r($contacts['friends']);
print_r($contacts['groups']);
// ...
});
```
##### 消息處理前監聽器
接收消息前回調。
```
$observer->setBeforeMessageObserver(function(){
});
```
##### 異常監聽器
當接收消息異常時,當系統判斷為太久沒從手機端打開微信時,則急需打開,時間過久將斷開。
```
$observer->setNeedActivateObserver(function(){
});
```