个性化菜单

关于生成个性化菜单接口的说明,请参考:

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


本页地址:http://www.foxtable.com/mobilehelp/topics/0200.htm