1
0
mirror of https://github.com/silenceper/wechat.git synced 2026-02-04 12:52:27 +08:00

补充 添加/删除 公众号模板消息接口 (#440)

* provide add/delete officialaccount template api

* use util.DecodeWithError check errcode
This commit is contained in:
ZmJ
2021-08-25 10:18:49 +08:00
committed by GitHub
parent df82432f6c
commit d392ff776b

View File

@@ -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")
}