修复好友获取不全的问题 (#118)
This commit is contained in:
parent
03aa3c1633
commit
efdac13d91
37
caller.go
37
caller.go
@ -155,19 +155,32 @@ func (c *Caller) SyncCheck(request *BaseRequest, info *LoginInfo, response *WebI
|
||||
|
||||
// WebWxGetContact 获取所有的联系人
|
||||
func (c *Caller) WebWxGetContact(info *LoginInfo) (Members, error) {
|
||||
resp, err := c.Client.WebWxGetContact(info)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
var members Members
|
||||
var reqs int64
|
||||
for {
|
||||
resp, err := c.Client.WebWxGetContact(info, reqs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var item WebWxContactResponse
|
||||
if err = scanJson(resp.Body, &item); err != nil {
|
||||
_ = resp.Body.Close()
|
||||
return nil, err
|
||||
}
|
||||
if err = resp.Body.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !item.BaseResponse.Ok() {
|
||||
return nil, item.BaseResponse.Err()
|
||||
}
|
||||
members = append(members, item.MemberList...)
|
||||
|
||||
if item.Seq == 0 || item.Seq == reqs {
|
||||
break
|
||||
}
|
||||
reqs = item.Seq
|
||||
}
|
||||
defer func() { _ = resp.Body.Close() }()
|
||||
var item WebWxContactResponse
|
||||
if err := scanJson(resp.Body, &item); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !item.BaseResponse.Ok() {
|
||||
return nil, item.BaseResponse.Err()
|
||||
}
|
||||
return item.MemberList, nil
|
||||
return members, nil
|
||||
}
|
||||
|
||||
// WebWxBatchGetContact 获取联系人的详情
|
||||
|
@ -214,12 +214,12 @@ func (c *Client) SyncCheck(request *BaseRequest, info *LoginInfo, response *WebI
|
||||
}
|
||||
|
||||
// WebWxGetContact 获取联系人信息
|
||||
func (c *Client) WebWxGetContact(info *LoginInfo) (*http.Response, error) {
|
||||
func (c *Client) WebWxGetContact(info *LoginInfo, reqs int64) (*http.Response, error) {
|
||||
path, _ := url.Parse(c.Domain.BaseHost() + webwxgetcontact)
|
||||
params := url.Values{}
|
||||
params.Add("r", strconv.FormatInt(time.Now().UnixNano()/1e6, 10))
|
||||
params.Add("skey", info.SKey)
|
||||
params.Add("req", "0")
|
||||
params.Add("seq", strconv.FormatInt(reqs, 10))
|
||||
path.RawQuery = params.Encode()
|
||||
req, _ := http.NewRequest(http.MethodGet, path.String(), nil)
|
||||
return c.Do(req)
|
||||
|
Loading…
x
Reference in New Issue
Block a user