UNPKG

3.86 kBJavaScriptView Raw
1'use strict';
2
3var util = require('./util');
4var wrapper = util.wrapper;
5var 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 */
63exports.createCustomMenu = function (menu, callback) {
64 this.preRequest(this._createCustomMenu, arguments);
65};
66
67/*!
68 * 创建个性化菜单的未封装版本
69 */
70exports._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 */
97exports.removeCustomMenu = function (menu_id,callback) {
98 this.preRequest(this._removeCustomMenu, arguments);
99};
100
101/*!
102 * 删除个性化菜单的未封装版本
103 */
104exports._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 */
155exports.testCustomMenu = function (user_id, callback) {
156 this.preRequest(this._testCustomMenu, arguments);
157};
158
159
160/*!
161 * 测试个性化菜单的未封装版本
162 */
163exports._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};