|
@@ -2,7 +2,6 @@ package menu
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
- "fmt"
|
|
|
|
|
|
|
|
|
|
"github.com/yaotian/gowechat/mp/base"
|
|
"github.com/yaotian/gowechat/mp/base"
|
|
|
"github.com/yaotian/gowechat/util"
|
|
"github.com/yaotian/gowechat/util"
|
|
@@ -121,28 +120,13 @@ func NewMenu(context *wxcontext.Context) *Menu {
|
|
|
|
|
|
|
|
//SetMenu 设置按钮
|
|
//SetMenu 设置按钮
|
|
|
func (menu *Menu) SetMenu(buttons []*Button) error {
|
|
func (menu *Menu) SetMenu(buttons []*Button) error {
|
|
|
- accessToken, err := menu.GetAccessToken()
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- uri := fmt.Sprintf("%s?access_token=%s", menuCreateURL, accessToken)
|
|
|
|
|
reqMenu := &reqMenu{
|
|
reqMenu := &reqMenu{
|
|
|
Button: buttons,
|
|
Button: buttons,
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- response, err := util.PostJSON(uri, reqMenu)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
- var commError util.CommonError
|
|
|
|
|
- err = json.Unmarshal(response, &commError)
|
|
|
|
|
|
|
+ _, err := menu.HTTPPostJSONWithAccessToken(menuCreateURL, reqMenu)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
- if commError.ErrCode != 0 {
|
|
|
|
|
- return fmt.Errorf("SetMenu Error , errcode=%d , errmsg=%s", commError.ErrCode, commError.ErrMsg)
|
|
|
|
|
- }
|
|
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -165,70 +149,34 @@ func (menu *Menu) DeleteMenu() (err error) {
|
|
|
|
|
|
|
|
//AddConditional 添加个性化菜单
|
|
//AddConditional 添加个性化菜单
|
|
|
func (menu *Menu) AddConditional(buttons []*Button, matchRule *MatchRule) error {
|
|
func (menu *Menu) AddConditional(buttons []*Button, matchRule *MatchRule) error {
|
|
|
- accessToken, err := menu.GetAccessToken()
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- uri := fmt.Sprintf("%s?access_token=%s", menuAddConditionalURL, accessToken)
|
|
|
|
|
reqMenu := &reqMenu{
|
|
reqMenu := &reqMenu{
|
|
|
Button: buttons,
|
|
Button: buttons,
|
|
|
MatchRule: matchRule,
|
|
MatchRule: matchRule,
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- response, err := util.PostJSON(uri, reqMenu)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
- var commError util.CommonError
|
|
|
|
|
- err = json.Unmarshal(response, &commError)
|
|
|
|
|
|
|
+ _, err := menu.HTTPPostJSONWithAccessToken(menuAddConditionalURL, reqMenu)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
- if commError.ErrCode != 0 {
|
|
|
|
|
- return fmt.Errorf("AddConditional Error , errcode=%d , errmsg=%s", commError.ErrCode, commError.ErrMsg)
|
|
|
|
|
- }
|
|
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//DeleteConditional 删除个性化菜单
|
|
//DeleteConditional 删除个性化菜单
|
|
|
func (menu *Menu) DeleteConditional(menuID int64) error {
|
|
func (menu *Menu) DeleteConditional(menuID int64) error {
|
|
|
- accessToken, err := menu.GetAccessToken()
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- uri := fmt.Sprintf("%s?access_token=%s", menuDeleteConditionalURL, accessToken)
|
|
|
|
|
reqDeleteConditional := &reqDeleteConditional{
|
|
reqDeleteConditional := &reqDeleteConditional{
|
|
|
MenuID: menuID,
|
|
MenuID: menuID,
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- response, err := util.PostJSON(uri, reqDeleteConditional)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return err
|
|
|
|
|
- }
|
|
|
|
|
- var commError util.CommonError
|
|
|
|
|
- err = json.Unmarshal(response, &commError)
|
|
|
|
|
|
|
+ _, err := menu.HTTPPostJSONWithAccessToken(menuDeleteConditionalURL, reqDeleteConditional)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
- if commError.ErrCode != 0 {
|
|
|
|
|
- return fmt.Errorf("DeleteConditional Error , errcode=%d , errmsg=%s", commError.ErrCode, commError.ErrMsg)
|
|
|
|
|
- }
|
|
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//MenuTryMatch 菜单匹配
|
|
//MenuTryMatch 菜单匹配
|
|
|
func (menu *Menu) MenuTryMatch(userID string) (buttons []Button, err error) {
|
|
func (menu *Menu) MenuTryMatch(userID string) (buttons []Button, err error) {
|
|
|
- var accessToken string
|
|
|
|
|
- accessToken, err = menu.GetAccessToken()
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- uri := fmt.Sprintf("%s?access_token=%s", menuTryMatchURL, accessToken)
|
|
|
|
|
reqMenuTryMatch := &reqMenuTryMatch{userID}
|
|
reqMenuTryMatch := &reqMenuTryMatch{userID}
|
|
|
var response []byte
|
|
var response []byte
|
|
|
- response, err = util.PostJSON(uri, reqMenuTryMatch)
|
|
|
|
|
|
|
+ response, err = menu.HTTPPostJSONWithAccessToken(menuTryMatchURL, reqMenuTryMatch)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -237,10 +185,6 @@ func (menu *Menu) MenuTryMatch(userID string) (buttons []Button, err error) {
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- if resMenuTryMatch.ErrCode != 0 {
|
|
|
|
|
- err = fmt.Errorf("MenuTryMatch Error , errcode=%d , errmsg=%s", resMenuTryMatch.ErrCode, resMenuTryMatch.ErrMsg)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
buttons = resMenuTryMatch.Button
|
|
buttons = resMenuTryMatch.Button
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|