[toc]
聯系人中所有類均繼承?[Collection](http://d.laravel-china.org/docs/5.4/collections)?進行存儲(除了 Myself),更多相關用法可參考?[Collection 的用法](http://d.laravel-china.org/docs/5.4/collections)
### collection 的結構
你可以把 collection 理解為一個數組,這個數組包含著多個聯系人,每個聯系人的鍵名為 UserName 的值。
### 聯系人 屬性
```
Uin : 0
UserName : @2a2e7be886a215a698d1eaec204e9ca0f5d6213c5ead54d0e4a11bc4634a7e4a
NickName : HanSon
HeadImgUrl : /cgi-bin/mmwebwx-bin/webwxgetheadimg?seq=627494574&username=@@2a2e7be886a21
a698d1eaec204e9ca0f5d6213c5ead54d0e4a11bc4634a7e4a&skey=@crypt_afd548f0_16e95af5ca8196715cb
fa2247b220eb
ContactFlag : 3
MemberCount : 0
MemberList : []
RemarkName :
HideInputBarFlag: 0
Sex : 0
Signature :
VerifyFlag : 0
OwnerUin : 0
PYInitial : VBOTTYQ
PYQuanPin : Vbottiyanqun
RemarkPYInitial :
RemarkPYQuanPin :
StarFriend : 0
AppAccountFlag : 0
Statues : 1
AttrStatus : 0
Province :
City :
Alias :
SnsFlag : 0
UniFriend : 0
DisplayName :
ChatRoomId : @0a8781cccb0a6138c42f496c0cdb6728
KeyWord :
EncryChatRoomId :
IsOwner : 1
```
### myself 屬性
* $nickname 昵稱
* $username 當前 session ID
* $uin 唯一的ID
* $sex 性別
### 獲取實例
```
// 好友實例
$friends = vbot('friends');
// 群實例
$groups = vbot('groups');
// 群成員實例
$members = vbot('members');
// 公眾號實例
$officials = vbot('officials');
// 特殊賬號實例
$specials = vbot('specials');
// 獲取自己實例
$myself = vbot('myself');
```
### API
#### 通用注解
* $blur 是否模糊搜索
#### 通用API
這里指每個實例都能調用的通用方法,下面用 $friends 作為范例
##### 根據昵稱獲取對象
```
$friends->getUsernameByNickname($nickname, $blur = false);
```
##### 根據備注獲取對象
```
$friends->getUsernameByRemarkName($remark, $blur = false);
```
##### 搜索出 UserName
search 為搜索的詞,key 為要搜索的鍵
```
$friends->getUsername($search, $key, $blur = false);
```
##### 搜索出 聯系人
search 為搜索的詞,key 為要搜索的鍵
```
$friends->getUsername($search, $key, $blur = false);
```
##### 根據 UserName 獲取聯系人
當你無法得知該 username 所屬時可使用
```
$friends->getAccount($username);
```
一般建議根據類型選擇,如
```
$groups->get($username);
```
##### 獲取頭像
```
$data = $groups->getAvatar($username);
file_put_content('avatar.jpg', $data);
```
#### 好友 API
##### 設置備注
```
$friends->setRemarkName($username, $remarkName);
```
##### 設置備注
$isStick 為 true 為置頂,否則相反
```
$friends->setStick($username, $isStick = true);
```
##### 添加好友
僅能根據 username 添加好友,換言之,只能添加群成員為好友,content 為添加好友申請說明
```
$friends->add($username, $content = null);
```
##### 同意添加好友
$message 為 message handler 接收到的 friend_request 消息,直接扔進來此處即可
```
$friends->approve($message);
```
#### 群 API
##### 根據昵稱獲取群聯系人
等同于?`$groups->getObject($nickname, 'NickName', $blur);`
```
$groups->getGroupsByNickname($nickname, $blur = false);
```
##### 根據昵稱搜索群成員
```
$groups->getMembersByNickname($groupUsername, $memberNickname, $blur = false)
```
##### 創建群聊天
聯系人的 username 數組
```
$groups->create(array $contacts)
```
##### 刪除群成員
移除群成員, $members 可以為單個 username 或者 數組
```
$groups->deleteMember($groupUsername, $members)
```
##### 增加群成員
```
$groups->addMember($groupUsername, $members)
```
##### 設置群名稱
```
$groups->setGroupName($group, $name)
```