github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/menu/api_conditional.go (about) 1 package menu 2 3 import ( 4 "github.com/chanxuehong/wechat/mp/core" 5 ) 6 7 // 创建个性化菜单. 8 func AddConditionalMenu(clt *core.Client, menu *Menu) (menuId int64, err error) { 9 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=" 10 11 var result struct { 12 core.Error 13 MenuId int64 `json:"menuId"` 14 } 15 if err = clt.PostJSON(incompleteURL, menu, &result); err != nil { 16 return 17 } 18 if result.ErrCode != core.ErrCodeOK { 19 err = &result.Error 20 return 21 } 22 menuId = result.MenuId 23 return 24 } 25 26 // 删除个性化菜单. 27 func DeleteConditionalMenu(clt *core.Client, menuId int64) (err error) { 28 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=" 29 30 var request = struct { 31 MenuId int64 `json:"menuid"` 32 }{ 33 MenuId: menuId, 34 } 35 var result core.Error 36 if err = clt.PostJSON(incompleteURL, &request, &result); err != nil { 37 return 38 } 39 if result.ErrCode != core.ErrCodeOK { 40 err = &result 41 return 42 } 43 return 44 } 45 46 // 测试个性化菜单匹配结果. 47 // 48 // userId 可以是粉丝的 OpenID, 也可以是粉丝的微信号 49 func TryMatch(clt *core.Client, userId string) (menu *Menu, err error) { 50 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=" 51 52 var request = struct { 53 UserId string `json:"user_id"` 54 }{ 55 UserId: userId, 56 } 57 var result struct { 58 core.Error 59 Menu `json:"menu"` 60 } 61 if err = clt.PostJSON(incompleteURL, &request, &result); err != nil { 62 return 63 } 64 if result.ErrCode != core.ErrCodeOK { 65 err = &result.Error 66 return 67 } 68 menu = &result.Menu 69 return 70 }