微信公众平台搭建技术初探

2017-05-18 18:56穆明王迎军
中国信息技术教育 2017年9期
关键词:代码开发者客户端

穆明+王迎军

目前,在众多交流学习平台中,微信公共平台就是典型的代表,它让家校共育、教学交互和交流更加方便、及时。在此,笔者将围绕开发模式下微信公众平台的搭建,从URL配置、access_token获取、菜单管理及消息接收回复等四个教学环节与同行进行交流。

URL配置

如果要启用开发模式就需要先成为开发者,而且编辑模式和开发模式只能选择一个,进入微信公众平台开发模式验证,需要填写URL和Token。URL必须是公网服务器的URL(指定80端口),如提交的URL为http://www.lzqsyxx.com/webmu/default.aspx。Token的选定必须与default.aspx后台代码所用的一致。进入开发模式的界面如图1所示。

点击提交后,微信服务器会向填写的开发者服务器发送4个参数,然后需要原样返回出来,所以在提交URL时,应先在服务器创建接口测试返回echostr参数内容,代码如下。

access_token获取

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。在正常情况下,access_token的有效期为7200秒,重复获取将导致上次获取的access_token失效。公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在开发模式中获得(需要已经成为开发者,且账号没有异常状态)。注意调用所有微信接口时均需使用https协议。http接口调用请求采用GET方式,根据微信服务器生成的本公众号的appid和secret的字符值,直接在手机客户端浏览器链接如下URL即可(在本机创建):

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

通过上述链接返回一个JSON格式数据,可以得到access_token值。创建菜单正确时,微信服务器返回JSON数据包{"errcode":0,"errmsg":"ok"}提示信息,错误时微信服务器返回JSON数据包{"errcode":40013,"errmsg":"invalid appid"} 。

菜单管理

1.创建菜单

菜单分为两种:①click。用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互。②view。用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的URL值(即网页链接),达到打开网页的目的。

click菜单需要填一个key,在客户端点击菜单事件时会用到,view只是一个菜单超链接。菜单数据固定是json格式,創建菜单就是开发者post发送一个json数据给微信服务器,createmenu.aspx后台主要代码:

menu.text里面的内容就是json示例菜单,此网页在本机客户端发布运行即可,无需上传到公网服务器。

2.查询删除菜单

查询和删除菜单也很简单,只是get请求,不需要传数据,类似createmenu.aspx后台程序,可以在本机客户端发布运行selectmenu.aspx或deletemenu.aspx。但因不存在post数据给微信服务器,在客户端浏览器中直接输入"https://api.weixin.qq.com/cgi-bin/menu/get?access_token=access_token"或"https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=access_token",就可实现查询或删除菜单功能。查询菜单返回的是json数据,其实就是创建菜单的menu.txt里面的内容。删除成功返回信息提示:{"errcode":0,"errmsg":"ok"}。

消息接收回复

使用微信公众号就是要对用户发送的信息进行处理,以接受普通文本消息为例。从文档上可以看出接受消息获得的是一个XML格式文件,接受消息的途径在申请开发模式时填写的URL后台程序代码实现。当普通微信用户通过微信服务器向公众账号发消息时,微信服务器将POST该消息到填写的URL上,传递给开发者的文件为XML文档。文本格式结构为:

开发者回复给微信服务器的文本消息结构格式与传递给开发者的文件格式(为XML文档)结构相同,我们在公网服务器的default.aspx页面后台添加如图2所示代码:

说明:messageHelp是封装的消息处理类库,代码在此省略。

猜你喜欢
代码开发者客户端
虚拟专用网络访问保护机制研究
新闻客户端差异化发展策略
神秘的代码
“85后”高学历男性成为APP开发新生主力军
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
16%游戏开发者看好VR
近期连续上涨7天以上的股
浅析IEEE 802.1x及其客户端软件