From 616f26f45bbd254bdf23aa52837b2c46448049c4 Mon Sep 17 00:00:00 2001 From: jiangyong27 Date: Fri, 26 Jul 2024 22:53:27 +0800 Subject: [PATCH] customer message --- qyweixin/app_customer.go | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/qyweixin/app_customer.go b/qyweixin/app_customer.go index b6a8c74..ef70e84 100644 --- a/qyweixin/app_customer.go +++ b/qyweixin/app_customer.go @@ -234,14 +234,42 @@ func (q *AppCustomer) GetCustomerInfo(externalUserid string) (*CustomerInfo, err } func (a *AppCustomer) SendCustomerText(openKfId, toUser, content string) error { + return a.sendCustomerMessage(openKfId, toUser, "text", map[string]interface{}{ + "content": content, + }) +} + +func (a *AppCustomer) SendCustomerVideo(openKfId, toUser, mediaId string) error { + return a.sendCustomerMessage(openKfId, toUser, "video", map[string]interface{}{ + "media_id": mediaId, + }) +} + +func (a *AppCustomer) SendCustomerImage(openKfId, toUser, mediaId string) error { + return a.sendCustomerMessage(openKfId, toUser, "image", map[string]interface{}{ + "media_id": mediaId, + }) +} + +func (a *AppCustomer) SendCustomerVoice(openKfId, toUser, mediaId string) error { + return a.sendCustomerMessage(openKfId, toUser, "voice", map[string]interface{}{ + "media_id": mediaId, + }) +} + +func (a *AppCustomer) SendCustomerFile(openKfId, toUser, mediaId string) error { + return a.sendCustomerMessage(openKfId, toUser, "file", map[string]interface{}{ + "media_id": mediaId, + }) +} + +func (a *AppCustomer) sendCustomerMessage(openKfId, toUser, msgtype string, data interface{}) error { reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/kf/send_msg?access_token=%s", a.GetToken()) params := make(map[string]interface{}) params["touser"] = toUser params["open_kfid"] = openKfId - params["msgtype"] = "text" - params["text"] = map[string]interface{}{ - "content": content, - } + params["msgtype"] = msgtype + params[msgtype] = data reqBody, _ := json.Marshal(params) rspBody, err := util.HttpPostJson(reqUrl, nil, reqBody) if err != nil { @@ -253,6 +281,7 @@ func (a *AppCustomer) SendCustomerText(openKfId, toUser, content string) error { } return nil } + func (a *AppCustomer) SyncMessage(openKfId, cursor, token string) ([]*CustomerMessage, string, error) { reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/kf/sync_msg?access_token=%s", a.GetToken()) params := make(map[string]interface{})