From 825dc51bf9d718d9c139195624c531faeaffa8ef Mon Sep 17 00:00:00 2001 From: eatmoreapple <15055461510@163.com> Date: Sat, 31 Jul 2021 23:42:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B6=88=E6=81=AF=E5=B7=B2?= =?UTF-8?q?=E8=AF=BB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- caller.go | 9 +++++++++ client.go | 19 +++++++++++++++++++ message.go | 5 +++++ 3 files changed, 33 insertions(+) diff --git a/caller.go b/caller.go index 87680d3..f78549b 100644 --- a/caller.go +++ b/caller.go @@ -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() diff --git a/client.go b/client.go index ff3f595..8260eee 100644 --- a/client.go +++ b/client.go @@ -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) +} diff --git a/message.go b/message.go index 14e5051..171dc35 100644 --- a/message.go +++ b/message.go @@ -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{}) {