基于Java技术的微信公众号自定义菜单的研究

2022-05-30 15:59徐晓
电脑知识与技术 2022年21期
关键词:微信公众号

徐晓

摘要:微信公众平台是一个功能强大且操作方便的应用平台,它被许多用户认可和喜爱。微信公众号的相关开发中最常见的,也是用户最喜欢使用的功能是自定义菜单。互联网上对于微信公众平台开发的资料有许多,大部分资料都是关于Java和PHP技术,本文采用Java技术开发了一个Web网页设计与开发公众号,主要研究如何用代码实现菜单的生成和响应。

关键词:微信公众号;Java技术;自定义菜单;微信服务器;事件响应

中图分类号:TP311.1      文献标识码:A

文章编号:1009-3044(2022)21-0111-02

开放科学(资源服务)标识码(OSID):

当今智能手机已经成为用户生活的必需物品,微信是手机中使用频率最高的软件之一。微信公众号广泛应用在许多的领域中,它的应用价值不可估计。为了提升用户之间交流的方便性、满意度和体验感,微信公众号必须要重视设计和开发互动功能。微信公众号现在有服务号和订阅号两大类,订阅号非常适合用来对移动教学平台的开发与建设。微信公众号不需要进行独立的App开发,只要在后台进行二次开发就可以实现很多功能[1]。微信公众号的相关开发中最常见的也是用户最喜欢使用的功能是自定义菜单,因为菜单只需要点一下就可以获取需要的信息,无须用户手动输入关键字,用户体验相对来说比较好。在普通的编辑模式下可以直接实现在后台进行编辑和设计自定义菜单,在开发模式设计自定义菜单需要自己编写代码实现。开发模式的自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。在开发者模式下實现自定义菜单有两种方法,第一种方法不需要编写任何代码,可以用自带的网页测试工具postjson字符串生成菜单;第二种实现菜单生成的方法是在开发中编写代码。只要是支持动态网页开发的编程语言都能用来对微信公众号平台进行开发,互联网上对于微信公众平台开发的资料有许多,大部分资料都是关于Java和PHP技术,因而开发起来比较容易。本文采用Java技术开发了一个Web网页设计与开发的公众号,主要研究如何用代码实现菜单生成和响应。

1微信公众号

微信公众平台是一个功能强大且操作方便的应用平台,利用微信公众号可以完成和特定群体的文字、声音和视频等信息的全方位交流和互动[2]。微信订阅号适用于个人和组织,媒体功能较突出,因而订阅号非常适合用来对移动教学平台的开发与建设,在公众号教学平台上可以和用户实现文本、语音、视频、图片的多方位交流与互动,提高教学时效。用户可以关注自己喜爱的公众号进行阅读和学习。

2 用Java技术进行微信公众平台开发

互联网上对于微信公众平台开发的资源有许多,例如:PHP、Java、ASP.NET 、Ruby、Python、Note.js等。开发人员可以选择自己最擅长的编程语言进行开发,网络上对于微信公众平台开发的大部分资料都是关于Java和PHP技术。本文采用的是Java的开发框架,采用Java进行微信公众平台开发至少需要掌握Java基础知识、JSP、Servlet、Javabean和JDBC(操作数据库) [3]。公众平台测试账号拥有微信公众平台很多的接口,本文使用公众平台测试账号开发自定义菜单,比较方便,如图1所示。

3 代码实现菜单的生成过程

微信公众号自定义菜单分为二级,一级菜单最多可以含有3个菜单项,每个一级菜单项下的二级菜单项最多能有5个,任何一个菜单项都含有一个关键值。当我们单击任何一个菜单项的时候,将会把该菜单项的关键值按事件推送的形式提交给后台处理程序。本文以一个案例来讲解自定义菜单的生成和响应过程。自定义菜单功能实现以后,让用户之间可以更加便捷的方式进行“简单的对话式”交互。

3.1 自定义菜单接口的按钮类型

自定义菜单接口有多种类型按钮,如表1所示,本文主要介绍菜单中view 和 click 两种类型的事件。

3.2 创建view 类型和click类型两个实体

查阅公众平台的API文档,可以看到自定义菜单的json结构示例,本文依据json结构示例,定义两个菜单项的json代码,如表2所示。一个是click类型,另一个是view类型,click类型的按钮有type、name和key三个属性,而view类型的按钮有type、name和url三个属性。

从上面的json代码可以分析得出,所有菜单都有一个相同的name属性。两种类型的菜单不仅仅是type值不同,而且它们的属性也存在差异。click类型的菜单包含了key属性,而view类型的菜单没有key属性,与之对应的是url属性。根据key值来判断用户点击了什么类型的click菜单项,然后会将该菜单项的key值以事件推送的形式提交给后台处理程序进行处理。view类型的菜单没有key属性。为了方便我们在自定义菜单中对 json 的封装,需要创建view类型和click类型两个实体。代码如图2和图3所示。

3.3 调用生成自定义菜单的接口发送到微信服务器

自定义菜单接口能进一步拓展开发者的施展空间,也能为公众账号的信息展示空间提供更多可能性。调用view和click两个实体封装json字符串menujson,最后调用发送方法将json发送给腾讯服务器,其实就是向地址https://api.weixin.qq.com/cgi-bin/menu/create?access_token= ACCESS_TOKEN用POST方法提交一个JSON格式的菜单字符串。但是这里需要用到账号生成的token,本文直接用从微信公众平台中取到access_token凭证,根据这个凭证,把拼装的json格式的菜单数据以POST方法提交[4]。最终运行返回结果ok即可,生成的自定义菜单如图4所示。

3.4 菜单事件响应

自定义菜单的创建工作已经完成,菜单事件推送在微信公众号开发中也是属于比较常用的一个功能,就是用户点击菜单之后,微信会将事件推送给接口程序。接下来就是识别用户点击的是哪个菜单,以及做出响应。当消息类型是MsgType=event自定义响应事件且Event=CLICK點击事件时,就能说明这是一个点击菜单事件。依据菜单的自定义的key值,就可以判断用户点击了什么菜单项,从而推送不同消息,它可以返回文本、图片、语音、视频等消息[5],本文展示一个简单示例,单击联系客服菜单以后,返回一段文本消息,效果见图5所示。

程序如下:

if(map.get("Event").equals("CLICK")){

String eventKey = map.get("EventKey");

if(eventKey.equals("text")) {

result = buildTextMessage(map, "我们的联系方式是:\n微信客服号:1708\nQQ客服号:1708\n感谢关注1708教育");

}}

4 结语

微信公众号广泛应用在许多的领域中,它的应用价值不可估计。微信公众平台具有自定义菜单的功能,本文主要研究了自定义菜单简单的开发应用,开发者能够采用编辑模式、开发模式给微信公众账号的会话页面按需添加自定义菜单,当用户单击菜单中的某一菜单项时,就能调出相关的网页链接或者相

关的回复信息。用户不再需要通过输入关键词来触发回复,直接点击相应的菜单项就可以查看有关的内容。自定义菜单接口能进一步拓展开发者的施展空间,也能为公众账号的信息展示提供更多可能性。自定义菜单功能实现以后,其便捷的操作和流畅的体验,可以让用户之间以更加便捷的方式进行“简单的对话式”交互。

参考文献:

[1] 赵建君,李宛珊,赵鑫恪,等.《数字媒体技术》课程微信公众学习平台的建设[J].当代教育实践与教学研究,2018(9):41-42.

[2] 程超,李国林,李建英.微信公众平台下的微课程开发与应用——以社区科技教育活动为例[J].云南开放大学学报,2017,19(1):10-13,19.

[3] 鲍筱晔,梁正礼.基于微信平台的移动教学模式研究[J].微型电脑应用,2019,35(12):73-77.

[4] 陈立富,徐建丽.基于微信公众号的微课平台的构建与实践——以大学体育为例[J].职教通讯,2017,32(9):64-66.

[5] 龙红.基于微信公众平台的图形图像处理课程资源开发与应用[J].电子技术与软件工程,2019(18):42-43.

【通联编辑:张薇】

猜你喜欢
微信公众号
江苏生鲜产品微信公众号营销问题及对策研究
微信公众号在高校“Photoshop图像处理”课程中的应用