个性化菜单
关于生成个性化菜单接口的说明,请参考:
https://developers.weixin.qq.com/doc/offiaccount/Custom_Menus/Personalized_menu_interface.html
生成个性化菜单
直接用代码生成JSON格式的菜单数据比较繁琐,实际开发额时候,可以设计一个窗口,用于输入菜单设置:
生成菜单按钮的代码为:
Dim
URL As
String =
"https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token={0}"
Dim
hc As
New HttpClient(CExp(URL,Functions.Execute("GetAccessToken")))
hc.Content
= e.Form.Controls("TextBox1").Text
Dim
jo As
JObject = JObject.Parse(hc.GetData)
If
jo("errcode")
Is Nothing
Then
MessageBox.Show("菜单设置成功,
menuid为: " & jo("menuid").ToString())
Else
MessageBox.Show(jo("errcode"))
End
If
其实个性化菜单和默认菜单基本没有差别,你设置了菜单匹配条件的就是个性化菜单,否则就是默认菜单,此外个性化菜单生成后会返回一个menuid。
查询某用户匹配的个性化菜单
个性化菜单可以定义多个,如果要查询某个用户匹配的个性化菜单,可以参考下面的代码:
Dim
URL As
String =
"https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token={0}"
Dim
hc As
New HttpClient(CExp(URL,Functions.Execute("GetAccessToken")))
Dim
jo As
New
JObject
jo("user_id")
= "oQdguw1qKnHQu5oIew-osH6JSIZA"
'用户微信号或OpenID
hc.Content
= jo.ToString()
jo =
JObject.Parse(hc.GetData)
If
jo("errcode")
Is Nothing
Then
MessageBox.Show(jo.ToString)
Else
MessageBox.Show(jo("errcode"))
End
If