mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-05 21:22:27 +08:00
获取公众号菜单配置
This commit is contained in:
62
menu/menu.go
62
menu/menu.go
@@ -15,6 +15,7 @@ const (
|
||||
menuAddConditionalURL = "https://api.weixin.qq.com/cgi-bin/menu/addconditional"
|
||||
menuDeleteConditionalURL = "https://api.weixin.qq.com/cgi-bin/menu/delconditional"
|
||||
menuTryMatchURL = "https://api.weixin.qq.com/cgi-bin/menu/trymatch"
|
||||
menuSelfMenuInfoURL = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info"
|
||||
)
|
||||
|
||||
//Menu struct
|
||||
@@ -63,6 +64,42 @@ type ResMenu struct {
|
||||
conditionalmenu []resConditionalMenu `json:"conditionalmenu"`
|
||||
}
|
||||
|
||||
//ResSelfMenuInfo 自定义菜单配置返回结果
|
||||
type ResSelfMenuInfo struct {
|
||||
util.CommonError
|
||||
|
||||
IsMenuOpen int32 `json:"is_menu_open"`
|
||||
SelfMenuInfo struct {
|
||||
Button []SelfMenuButton `json:"button"`
|
||||
} `json:"selfmenu_info"`
|
||||
}
|
||||
|
||||
//SelfMenuButton 自定义菜单配置详情
|
||||
type SelfMenuButton struct {
|
||||
Type string `json:"type"`
|
||||
Name string `json:"name"`
|
||||
Key string `json:"key"`
|
||||
URL string `json:"url,omitempty"`
|
||||
Value string `json:"value,omitempty"`
|
||||
SubButton struct {
|
||||
List []SelfMenuButton `json:"list"`
|
||||
} `json:"sub_button,omitempty"`
|
||||
NewsInfo struct {
|
||||
List []ButtonNew `json:"list"`
|
||||
} `json:"news_info,omitempty"`
|
||||
}
|
||||
|
||||
//ButtonNew 图文消息菜单
|
||||
type ButtonNew struct {
|
||||
Title string `json:"title"`
|
||||
Author string `json:"author"`
|
||||
Digest string `json:"digest"`
|
||||
ShowCover int32 `json:"show_cover"`
|
||||
CoverURL string `json:"cover_url"`
|
||||
ContentURL string `json:"content_url"`
|
||||
SourceURL string `json:"source_url"`
|
||||
}
|
||||
|
||||
//MatchRule 个性化菜单规则
|
||||
type MatchRule struct {
|
||||
GroupID int32 `json:"group_id,omitempty"`
|
||||
@@ -235,3 +272,28 @@ func (menu *Menu) MenuTryMatch(userID string) (buttons []Button, err error) {
|
||||
buttons = resMenuTryMatch.Button
|
||||
return
|
||||
}
|
||||
|
||||
//GetCurrentSelfMenuInfo 获取自定义菜单配置接口
|
||||
func (menu *Menu) GetCurrentSelfMenuInfo() (resSelfMenuInfo ResSelfMenuInfo, err error) {
|
||||
var accessToken string
|
||||
accessToken, err = menu.GetAccessToken()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
uri := fmt.Sprintf("%s?access_token=%s", menuSelfMenuInfoURL, accessToken)
|
||||
var response []byte
|
||||
response, err = util.HTTPGet(uri)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
fmt.Println(string(response))
|
||||
err = json.Unmarshal(response, &resSelfMenuInfo)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if resSelfMenuInfo.ErrCode != 0 {
|
||||
err = fmt.Errorf("GetCurrentSelfMenuInfo Error , errcode=%d , errmsg=%s", resSelfMenuInfo.ErrCode, resSelfMenuInfo.ErrMsg)
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user