1 | ;
|
2 |
|
3 | var util = require('./util');
|
4 | var wrapper = util.wrapper;
|
5 | var postJSON = util.postJSON;
|
6 |
|
7 | /**
|
8 | * 创建个性化菜单
|
9 | * 详细请看:<http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html>
|
10 | *
|
11 | * Menu:
|
12 | * ```
|
13 | * {
|
14 | * "button":[
|
15 | * {
|
16 | * "type":"click",
|
17 | * "name":"今日歌曲",
|
18 | * "key":"V1001_TODAY_MUSIC"
|
19 | * },
|
20 | * {
|
21 | * "name":"菜单",
|
22 | * "sub_button":[
|
23 | * {
|
24 | * "type":"view",
|
25 | * "name":"搜索",
|
26 | * "url":"http://www.soso.com/"
|
27 | * },
|
28 | * {
|
29 | * "type":"click",
|
30 | * "name":"赞一下我们",
|
31 | * "key":"V1001_GOOD"
|
32 | * }]
|
33 | * }]
|
34 | * }
|
35 | * ],
|
36 | * "matchrule":{
|
37 | * "group_id":"2",
|
38 | * "sex":"1", // 男1,女2
|
39 | * "country":"中国",
|
40 | * "province":"广东",
|
41 | * "city":"广州",
|
42 | * "client_platform_type":"2" // IOS(1), Android(2),Others(3)
|
43 | * }
|
44 | * }
|
45 | * ```
|
46 | * Examples:
|
47 | * ```
|
48 | * api.createCustomMenu(menu, callback);
|
49 | * ```
|
50 | * Callback:
|
51 | *
|
52 | * - `err`, 调用失败时得到的异常
|
53 | * - `result`, 调用正常时得到的对象
|
54 | *
|
55 | * Result:
|
56 | * ```
|
57 | * { menuid: 401550287 }
|
58 | *
|
59 | * ```
|
60 | * @param {Object} menu 菜单对象
|
61 | * @param {Function} callback 回调函数
|
62 | */
|
63 | exports.createCustomMenu = function (menu, callback) {
|
64 | this.preRequest(this._createCustomMenu, arguments);
|
65 | };
|
66 |
|
67 | /*!
|
68 | * 创建个性化菜单的未封装版本
|
69 | */
|
70 | exports._createCustomMenu = function (menu, callback) {
|
71 | var url = this.endpoint + '/cgi-bin/menu/addconditional?access_token=' + this.token.accessToken;
|
72 | this.request(url, postJSON(menu), wrapper(callback));
|
73 | };
|
74 |
|
75 |
|
76 | /**
|
77 | * 删除个性化菜单
|
78 | * 详细请看:<http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html>
|
79 | *
|
80 | * Examples:
|
81 | * ```
|
82 | * api.removeCustomMenu(menu_id,callback);
|
83 | * ```
|
84 | * Callback:
|
85 | *
|
86 | * - `err`, 调用失败时得到的异常
|
87 | * - `result`, 调用正常时得到的对象
|
88 | *
|
89 | * Result:
|
90 | * ```
|
91 | * {"errcode":0,"errmsg":"ok"}
|
92 | * ```
|
93 | *
|
94 | * @param {String} menu_id, 可以通过自定义菜单查询接口获取
|
95 | * @param {Function} callback 回调函数
|
96 | */
|
97 | exports.removeCustomMenu = function (menu_id,callback) {
|
98 | this.preRequest(this._removeCustomMenu, arguments);
|
99 | };
|
100 |
|
101 | /*!
|
102 | * 删除个性化菜单的未封装版本
|
103 | */
|
104 | exports._removeCustomMenu = function (menu_id,callback) {
|
105 | var url = this.endpoint + '/cgi-bin/menu/delconditional?access_token=' + this.token.accessToken;
|
106 | this.request(url, postJSON({
|
107 | 'menuid' : menu_id
|
108 | }), wrapper(callback));
|
109 | };
|
110 |
|
111 |
|
112 |
|
113 | /**
|
114 | * 测试个性化菜单
|
115 | * 详细请看:<http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html>
|
116 | *
|
117 | * Examples:
|
118 | * ```
|
119 | * api.testCustomMenu(user_id,callback);
|
120 | * ```
|
121 | * Callback:
|
122 | *
|
123 | * - `err`, 调用失败时得到的异常
|
124 | * - `result`, 调用正常时得到的对象
|
125 | *
|
126 | * Result:
|
127 | * ```
|
128 | * {
|
129 | * "button": [
|
130 | * {
|
131 | * "type": "view",
|
132 | * "name": "tx",
|
133 | * "url": "http://www.qq.com/",
|
134 | * "sub_button": [ ]
|
135 | * },
|
136 | * {
|
137 | * "type": "view",
|
138 | * "name": "tx",
|
139 | * "url": "http://www.qq.com/",
|
140 | * "sub_button": [ ]
|
141 | * },
|
142 | * {
|
143 | * "type": "view",
|
144 | * "name": "tx",
|
145 | * "url": "http://www.qq.com/",
|
146 | * "sub_button": [ ]
|
147 | * }
|
148 | * ]
|
149 | * }
|
150 | * ```
|
151 | *
|
152 | * @param {String} user_id, 可以是粉丝的OpenID,也可以是粉丝的微信号。
|
153 | * @param {Function} callback 回调函数
|
154 | */
|
155 | exports.testCustomMenu = function (user_id, callback) {
|
156 | this.preRequest(this._testCustomMenu, arguments);
|
157 | };
|
158 |
|
159 |
|
160 | /*!
|
161 | * 测试个性化菜单的未封装版本
|
162 | */
|
163 | exports._testCustomMenu = function (user_id,callback) {
|
164 | var url = this.endpoint + '/cgi-bin/menu/trymatch?access_token=' + this.token.accessToken;
|
165 | this.request(url, postJSON({
|
166 | 'user_id' : user_id
|
167 | }), wrapper(callback));
|
168 | };
|