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

上一篇《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

posted on 2014-12-24 17:58 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4182960.html

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

  1. Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明

    这里所说的高级接口是指面向通过认证的服务号开通的高级功能. 高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账 ...

  2. Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能

    在Senparc.Weixin.dll v4.5.7版本开始,我们提供了Web代理功能,以方便在受限制的局域网内的应用可以顺利调用接口. 有关的修改都在Senparc.Weixin/Utilities ...

  3. Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制

    在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...

  4. Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler

    原文地址为: Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler 上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程( ...

  5. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试...

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  6. 微信公众号开发教程(四)自定义菜单

    作者:陈惠,叩丁狼教育高级讲师.原创文章,转载请注明出处. 本篇文章,我们来做一个最常见的,也是用户最喜欢使用的功能--自定义菜单. 因为菜单只需要点一下就可以获取需要的信息,无需用户手动输入关键字, ...

  7. 微信公众号开发教程[011]-自定义菜单以及个性化菜单

    自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.类型分别有click,view,scancode_push,scancode_waitmsg,pic_sysphoto,pic_pho ...

  8. 转载收藏之用 - 微信公众平台开发教程(三):微信公众平台开发验证

    要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方 ...

  9. 微信支付(企业付款到个人微信零钱账户)微信公众平台开发教程(6)

    微信支付(企业付款到个人微信零钱账户)微信公众平台开发教程(6 简介 开发步骤 后端代码实现 简介 Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的 ...

最新文章

  1. python和linux哪个难学-请不要重复犯我在学习Python和Linux系统上的错误
  2. TOMOYO Linux(undone)
  3. 【CDN】域名无法访问,ping不到,tracert不到
  4. python给图片加半透明水印_Python 批量加水印就这么简单!
  5. MFC学习日志(一)
  6. (转载)黑白帽子思路
  7. zendstudio13.6配置xdebug调试
  8. SSD固态硬盘健康状况检测工具SSDReporter
  9. Unity 武器拖尾效果
  10. Python Interpreter
  11. linux怎么调显卡风扇速度,Ubuntu下无显示器(服务器)手动调节Nvidia显卡风扇转速...
  12. steam的游戏服务器在哪个文件夹,使用SteamCMD在Windows上架设Don't Starve Together服务器...
  13. excel表格打印每页都有表头_EXCEL打印小技巧:如何打印出每张纸上都有表头标题的表格?...
  14. Ubuntu16.04 启动项修复
  15. 苹果cms影片集数不更新解决方法
  16. Android自定义Dialog(仿QQ同步助手退出对话框)
  17. [读书笔记] 用户增长方法论
  18. JAVA一些实例实战
  19. 【华为云技术分享】敏捷设计,高效协同,凸显设计端云协同价值
  20. 关于Microsofe Visio,如果设置图层大小与绘图适应?

热门文章

  1. java8 streamlist转化
  2. Linux在线下载安装MySQL8
  3. Python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
  4. 一个完整的软件项目开发流程,软件过程,软件生命周期
  5. 【CCCC】L2-011 玩转二叉树 (25分),二叉树建树与遍历(我讨厌树,@L2-006)
  6. 【POJ3461】Oulipo(字符串Hash)
  7. 【Luogu3926】SAC E#1 - 一道不可做题 Jelly
  8. 红帽子企业版linux 7,红帽企业 Red Hat Enterprise Linux 7.8 发布
  9. android 腾讯 gt,源码解读腾讯 GT 的性能测试方案
  10. srand函数_SUDA-CS考研复试常用函数