From d392ff776b99af3934f3335ad52c8d91364efb16 Mon Sep 17 00:00:00 2001 From: ZmJ Date: Wed, 25 Aug 2021 10:18:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=20=E6=B7=BB=E5=8A=A0/?= =?UTF-8?q?=E5=88=A0=E9=99=A4=20=E5=85=AC=E4=BC=97=E5=8F=B7=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=B6=88=E6=81=AF=E6=8E=A5=E5=8F=A3=20(#440)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * provide add/delete officialaccount template api * use util.DecodeWithError check errcode --- officialaccount/message/template.go | 57 ++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/officialaccount/message/template.go b/officialaccount/message/template.go index 2964d5c..8cda602 100644 --- a/officialaccount/message/template.go +++ b/officialaccount/message/template.go @@ -11,6 +11,8 @@ import ( const ( templateSendURL = "https://api.weixin.qq.com/cgi-bin/message/template/send" templateListURL = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template" + templateAddURL = "https://api.weixin.qq.com/cgi-bin/template/api_add_template" + templateDelURL = "https://api.weixin.qq.com/cgi-bin/template/del_private_template" ) //Template 模板消息 @@ -59,7 +61,8 @@ func (tpl *Template) Send(msg *TemplateMessage) (msgID int64, err error) { return } uri := fmt.Sprintf("%s?access_token=%s", templateSendURL, accessToken) - response, err := util.PostJSON(uri, msg) + var response []byte + response, err = util.PostJSON(uri, msg) if err != nil { return } @@ -113,3 +116,55 @@ func (tpl *Template) List() (templateList []*TemplateItem, err error) { templateList = res.TemplateList return } + +type resTemplateAdd struct { + util.CommonError + + TemplateID string `json:"template_id"` +} + +// Add 添加模板. +func (tpl *Template) Add(shortID string) (templateID string, err error) { + var accessToken string + accessToken, err = tpl.GetAccessToken() + if err != nil { + return + } + var msg = struct { + ShortID string `json:"template_id_short"` + }{ShortID: shortID} + uri := fmt.Sprintf("%s?access_token=%s", templateAddURL, accessToken) + var response []byte + response, err = util.PostJSON(uri, msg) + if err != nil { + return + } + + var result resTemplateAdd + err = util.DecodeWithError(response, &result, "AddTemplate") + if err != nil { + return + } + templateID = result.TemplateID + return +} + +// Delete 删除私有模板. +func (tpl *Template) Delete(templateID string) (err error) { + var accessToken string + accessToken, err = tpl.GetAccessToken() + if err != nil { + return + } + var msg = struct { + TemplateID string `json:"template_id"` + }{TemplateID: templateID} + + uri := fmt.Sprintf("%s?access_token=%s", templateDelURL, accessToken) + var response []byte + response, err = util.PostJSON(uri, msg) + if err != nil { + return + } + return util.DecodeWithCommonError(response, "DeleteTemplate") +}