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