添加消息已读功能

This commit is contained in:
eatmoreapple 2021-07-31 23:42:12 +08:00
parent 6e683358ef
commit 825dc51bf9
3 changed files with 33 additions and 0 deletions

View File

@ -327,6 +327,15 @@ func (c *Caller) WebWxRevokeMsg(msg *SentMessage, request *BaseRequest) error {
return parseBaseResponseError(resp)
}
// WebWxStatusAsRead 将消息设置为已读
func (c *Caller) WebWxStatusAsRead(request *BaseRequest, info *LoginInfo, msg *Message) error {
resp, err := c.Client.WebWxStatusAsRead(request, info, msg)
if err != nil {
return err
}
return parseBaseResponseError(resp)
}
// 处理响应返回的结果是否正常
func parseBaseResponseError(resp *http.Response) error {
defer resp.Body.Close()

View File

@ -655,3 +655,22 @@ func (c *Client) webWxCheckUpload(stat os.FileInfo, request *BaseRequest, fileMd
req.Header.Add("Content-Type", jsonContentType)
return c.Do(req)
}
func (c *Client) WebWxStatusAsRead(request *BaseRequest, info *LoginInfo, msg *Message) (*http.Response, error) {
path, _ := url.Parse(c.domain.BaseHost() + webwxstatusnotify)
content := map[string]interface{}{
"BaseRequest": request,
"DeviceID": request.DeviceID,
"Sid": request.Sid,
"Skey": request.Skey,
"Uin": info.WxUin,
"ClientMsgId": time.Now().Unix(),
"Code": 1,
"FromUserName": msg.ToUserName,
"ToUserName": msg.FromUserName,
}
body, _ := ToBuffer(content)
req, _ := http.NewRequest(http.MethodPost, path.String(), body)
req.Header.Add("Content-Type", jsonContentType)
return c.Do(req)
}

View File

@ -287,6 +287,11 @@ func (m *Message) Agree(verifyContents ...string) error {
return m.Bot.Caller.WebWxVerifyUser(m.Bot.storage, m.RecommendInfo, builder.String())
}
// AsRead 将消息设置为已读
func (m *Message) AsRead() error {
return m.Bot.Caller.WebWxStatusAsRead(m.Bot.storage.Request, m.Bot.storage.LoginInfo, m)
}
// Set 往消息上下文中设置值
// goroutine safe
func (m *Message) Set(key string, value interface{}) {