知识点

相关文章

更多

最近更新

更多

Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明

2019-03-02 00:53|来源: 网路

    上一篇《Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明》介绍了如何通过通用接口获取AccessToken,有了AccessToken,我们就可以来操作自定义菜单,以及其他的高级接口,这一篇单讲自定义菜单。

 

一、自定义菜单规则

  1. 自定义菜单分为一级菜单和二级菜单。
  2. 一级菜单数量为1-3个,即打开公众账号直接可以看到排列在最下方的最多3个按钮。一级菜单的文字最多不能超过16字节(相当于8个汉字)。
  3. 二级菜单从属于一级菜单,数量为1-5个。二级菜单的文字不最多不能超过40字节(相当于20个汉字)。
  4. 无论一级菜单还是二级菜单,都有两个触发事件可以选择,分别是:点击(click,值不能超过128字节)和打开网址(view,url不能超过256个字节)。
  5. 当一个一级菜单下有二级菜单存在的时候,这个一级菜单按钮被点击不会有任何事件发生。

二、创建菜单

  使用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了)。 

六、自定义菜单可视化编辑器

  目前盛派网络在两个地方提供了免费的自定义菜单可视化编辑器,免去大家需要运行代码才能操作菜单的困境:

  1. 第一代:http://weixin.senparc.com/Menu

  2. 第二代:微微嗨(http://www.weiweihi.com),注册添加微信公众账号之后即可获得一系列强大的管理功能。


    系列教程索引:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html


转自:http://www.cnblogs.com/szw/p/3750517

相关问答

更多
  • 1. 一般个人是用不着开发工具包的,都是外包给二次开发公司如微盟等。因为个人实力毕竟有限,如果想做像样的产品还是得请专业的搭公司来。 2. 如果你是技术大牛,那就来微盟吧,这个市场缺人才,你懂的,有推荐 费用 3. 望采纳
  • 不是访问你自己的服务么?追问是自己的服务器,感觉自定义菜单是应该在微信的服务器里运行才可以回答自定义的菜单 微信里只是一个链接 调用的是你自己的服务 你要自己部署一个服务器 有对外的访问ip追问那是菜单设置完成后考虑的事,链接,公网ip我都有,现在只差这个菜单设置了回答哦 终于搞懂了 那个是微信提供了一个管理的界面啊 可以设置菜单名称 链接之类的追问怪我没说明白,我现在有接口代码,问题是不知道怎么让它部署运行回答tomcat部署服务?是少这个么追问不是,微信公众平台开发者模式首先需要接口来链接你自己的服务器 ...
  • 能使用的!微信 在安卓手机里可以使用,安装是用java 开发的,所以 可以用java开发
  • cognos SDK[2022-01-30]

    我是想学PHP 不知道怎么样? ==================== 个人推荐你学ASP.NET,JAVA也可以看看。这绝对是趋势!好像PHP替代原始的CGI编程一样。下面具体回答: 而且现在都有PHP 5了! ==================== 目前来看,大学里教的都是.NET和JAVA,这也证明了主流语言是什么。上学的时候,我们学Java, .NET但我发现诸如Yahoo,Facebook,味及败科这样的大型网站无疑都采用Linux+PHP, 百度也是。他们虽然也有自己的 服务器,不过相信PH ...
  • 微信公众平台开发注意事项: 一、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请前往微信开放平台接入。 二、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。 三、在开发过程中,可以使用接口调试工具来在线调试某些接口。 四、每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。 五、在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台 ...
  • 这是源文件。 这也将使您的IDE能够在您想要查看它时显示源代码(例如,在调试时),它还包含javadoc。 It's the source files. This will also enable your IDE to show you the source code when you want to see it (e.g. while debugging), also it contains the javadoc.
  • 我认为你正在创建一个可重用的库,或者如果你的应用程序框架更加雄心勃勃。 我对SDK的理解是,它将拥有开发应用程序所需的工具(例如编译器,WSDL预处理器),而运行时环境将拥有运行开发应用程序所需的功能。 对比Java JRE(VM,标准库)和JDK(编译器等)当我们为专业平台(例如智能手机)开发时,我们经常在SDK中模拟目标平台,以便我们在我们的代码上测试我们的代码工作站。 我认为您不应该关注是否构建框架或SDK,而是关心它是否对其他开发人员有用。 如果你对他们说:“下载你的标准Java JDK,+标准mo ...
  • 完整安装程序: 32位: http : //amd-dev.wpengine.netdna-cdn.com/app-sdk/installers/APPSDKInstaller/3.0.130.135-GA/full/AMD-APP-SDKInstaller-v3.0.130.135-GA- Windows的F-x86.exe程序 64位: http : //amd-dev.wpengine.netdna-cdn.com/app-sdk/installers/APPSDKInstaller/3.0.130. ...
  • SDK Tools是Android SDK的可下载组件。 它包括Android SDK的完整开发和调试工具,如模拟器,sdcard,sqlite和apk构建器等。其中Platform-tools用于支持当前Android平台的功能,包括adb,它就像一座桥梁与模拟器或设备通信。 SDK Tools is a downloadable component for the Android SDK. It includes the complete set of development and debugging ...
  • HttpClient依赖来自Dataflow SDK 1.8.0 - > google-api-client 1.22.0 - > google-oauth-client 1.22.0 - > google-http-client 1.22.0 - > httpclient 4.0.1 根据Google Http Client的文档 ,它需要HttpClient 4.0.1 或兼容 。 哪个版本的HttpClient是Maven解析的? (参见mvn dependency:tree -Dverbose 。) ...