标签:
上一篇《Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明》介绍了如何通过通用接口获取AccessToken,有了AccessToken,我们就可以来操作自定义菜单,以及其他的高级接口,这一篇单讲自定义菜单。
使用Senparc.Weixin.MP SDK创建自定义菜单非常简单。只需三步:
第一步:获取AccessToken
var accessToken = AccessTokenContainer.TryGetToken(appId, appSecret).access_token;
第二步:组织菜单内容
ButtonGroup bg = new ButtonGroup(); //单击 bg.button.Add(new SingleClickButton() { name = "单击测试", key = "OneClick", type = ButtonType.click.ToString(),//默认已经设为此类型,这里只作为演示 }); //二级菜单 var subButton = new SubButton() { name = "二级菜单" }; subButton.sub_button.Add(new SingleClickButton() { key = "SubClickRoot_Text", name = "返回文本" }); subButton.sub_button.Add(new SingleClickButton() { key = "SubClickRoot_News", name = "返回图文" }); subButton.sub_button.Add(new SingleClickButton() { key = "SubClickRoot_Music", name = "返回音乐" }); subButton.sub_button.Add(new SingleViewButton() { url = "http://weixin.senparc.com", name = "Url跳转" }); bg.button.Add(subButton);
第三步:提交到微信服务器
var result = CommonApi.CreateMenu(accessToken, bg);
上面SingleClickButton和SingleViewButton分别对应了click和view两种菜单响应方式。
查询菜单同样需要按照上面的方式获取AccessToken,然后只需要一行代码:
var result = CommonApi.GetMenu(accessToken);
得到的result.menu的结构即类似上述创建菜单时的ButtonGroup bg变量。
得到AccessToken后,删除菜单同样只需要一行代码:
var result = CommonApi.DeleteMenu(accessToken);
无论是click还是view,服务器都会收到不同的事件响应(见《Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler》,分别触发OnEvent_ClickRequest()和OnEvent_ViewRequest()。
不同的是,click之后客户端可以得到返回信息,而view在收到请求后,无论返回什么信息,客户端都无法收到(直接打开URL了)。
目前盛派网络在两个地方提供了免费的自定义菜单可视化编辑器,免去大家需要运行代码才能操作菜单的困境:
Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明
标签:
原文地址:http://www.cnblogs.com/Alex80/p/4261530.html