基于微信的地震行业APP服务系统设计与实现

2015-09-26 02:32何霆叶佳宁
华南地震 2015年2期
关键词:图文菜单微信

何霆,叶佳宁

(1.广东省地震局,广州510070;2.中国地震局地震监测与减灾技术重点实验室,广州510070;3.广东省地震预警与重大工程安全诊断重点实验室(筹),广州510070)

基于微信的地震行业APP服务系统设计与实现

何霆1,2,3,叶佳宁1,2,3

(1.广东省地震局,广州510070;2.中国地震局地震监测与减灾技术重点实验室,广州510070;3.广东省地震预警与重大工程安全诊断重点实验室(筹),广州510070)

广东省地震局官方微信“南粤防震减灾”,是基于微信开发的地震行业APP服务系统。以广东省地震局官方微信“南粤防震减灾”为例,介绍了基于微信的地震行业APP服务系统在国内的研究现状、特点和优势,广东省地震局官方微信“南粤防震减灾”的设计和实现,以及此系统尚需改进之处。

微信;地震;APP服务

何霆,叶佳宁.基于微信的地震行业APP服务系统设计与实现[J].华南地震,2015,35(2):37-42.[HE Ting,YE Jianing.Design and Implementation of Earthquake Industry APPService System Based on Wechat[J].South china journal of seismology,2015,35(2):37-42.]

0 引言

2013年初,微信用户已突破三亿,它作为一种新的信息传播方式使人们能够更加方便、快捷、全面的获取各种信息。许多行业意识到微信的发展前景及可能拥有较大的用户量,将其作为自身信息的发布平台之一,或者作为扩大影响力的重要宣传手段之一。在地震行业,微信已慢慢成为民众与政府的重要媒介平台。地震部门可通过微信平台对民众提供实时有效的地震信息,丰富实用的科普知识,就近便利的避难场所等信息。民众可通过微信平台将日常的动物、自然异象等情况反馈给地震部门,同时也可在震时通过此平台提供当地的灾情情况等信息给地震部门。因此,只要微信稍加开发,地震部门便可以将其作为民众与地震部门的沟通媒介之一。

1 研究现状

目前国内地震部门有多家单位对微信进行二次开发,设计出基于微信的APP服务系统。功能较为完善的有厦门市地震局和云南省地震局。厦门市地震局官方微信提供了震情服务、地震应对和日常的科普推送等功能;在给用户提供服务信息的同时,也提供了让用户自助登记避难场所信息的功能,达到取之于民,用之于民的效果。如云南省地震局给用户提供了简单地震科普服务、地震情况查询服务等。但是国内地震部门的基于微信平台的地震行业APP服务系统还处于初级阶段,如何通过此服务系统为民众提供优质的服务都还在探索中。

2 基于微信的APP服务系统的特点

2.1微信简介

微信是腾讯公司推出的一款即时通讯工具,可以通过网络快速发送语音、视频、图片和文字等。用户可以通过它进行形式上更加丰富的类似于邮件、短信、彩信等方式的联系。截至2013年7月,微信用户数量已经达到4亿,而且仍在迅速增加[1]。微信以其庞大的用户数量成为一种新的媒体传播方式,让人不容忽视。

不同于微博,微信已经发展成为了一个“平台APP”和“智能AppStore”,各种原生APP逐渐成为微信组件或蜕化为帐号之一。通过面向政府、媒体、企业等机构推出公众平台服务,微信已经被大量应用到传媒、银行、航空、医疗机构等诸多领域。

2.2基于微信构建APP服务系统的模式

采用轻量级、松耦合架构,利用微信作为APP客户端,微信公众平台自定义接口作为I/O通道,构建后台APP Server端,负责逻辑和数据处理,以文字、图片、语音等方式,向用户推送消息和提供交互服务。APPServer通过API与各个业务系统、数据库进行通讯。

2.3基于微信构建APP服务系统的优势

2.3.1构建成本低

微信需要网络通畅,但微信APP客户端和上下行数据通信完全免费,利用它作为地震行业服务的APP客户端,不必要再进行专门的APPUI开发,只需要合理地调用接口来丰富APP功能以实现用户交互,可以极大节省APP服务系统建设的总体成本。

2.3.2功能灵活,定制简单

基于微信的地震行业APP服务系统是完全松耦合的,新功能上线不用重新开发APP客户端,并完全不会影响原有功能。所以行业内部可以根据民众需求和行业产品,有计划地陆续上线相关功能,自由定制特色服务。

2.3.3全平台支持

微信APP客户端全面支持ios、Android、windows phone和Symbian的智能终端。如果参考计世资讯2012年5月的研究报告发布的智能手机操作系统市场占有份额,则覆盖了94%的终端设备[2]。

2.3.4节省流量

微信APP系统对图片、语音和视频传递进行了专门优化,1M可发约l 000条文字信息,1 000 s语音信息,约1 min视频信息[3]。

3 系统设计与实现

3.1接口的申请和接入

首先,到微信公众平台(http://mp.weixin.qq. com)申请公众平台帐号,然后到指定页面申请消息接口,填写接口的网址url和令牌token,其中token可以任意填写,用作接口调用的依据[3]。

提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上4个参数,如表1所示。

表1 微信校验参数Table 1 W eChat calibration parameters

Server端通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,原样返回echostr参数内容,接入生效,否则接入失败。正确接入后才可进行后续开发。

具体代码如下:

function wxVerify(){

$signature=$_GET["signature"];

$timestamp=$_GET["timestamp"];

$nonce=$_GET["nonce"];

$token=TOKEN;

$tmpArr=array($token,$timestamp,$nonce);

sort($tmpArr);

$tmpStr=implode($tmpArr);

$tmpStr=sha1($tmpStr);

return$tmpStr==$signature?$_GET["echostr"]:"";

}

3.2菜单功能设计

广东省地震局官方微信“南粤防震减灾”公众号参考了国内现有的基于微信平台的地震行业APP服务系统,针对广东省地震局的实际情况,对功能和服务进行归类整合,将其分为了三大模块:地震信息、服务平台和互动平台。其中,地震信息栏目反馈给用户关于地震方面的信息,此栏目又分为地震快讯、震情概况、周边地震三个子菜单,如表2;服务平台栏目专门为用户提供一些切实可行的服务,包括科普馆预约、开馆时间、人才招聘等服务,因此分为预约参观、讯息公告、科普知识三个子菜单,如表3;互动平台是民众与政府部门的交流平台,用户可以提问、提建议、对地震灾害信息进行上报,工作人员将会一一回访,因此此栏目分为你问我答、建议收集和信息收集三个子菜单,如表4。

表4 互动平台栏目Table 4 Interactive platform column

3.3菜单创建

微信公众号提供了自定义菜单的编程接口,可以根据需求定制菜单和子菜单以及每个菜单的响应模式。方法为通过POST一个特定结构体到微信服务器,便可以在APP客户端创建自定义菜单。例如,南粤防震减灾公众号有三个菜单,且每个菜单有三个子菜单。

以地震信息菜单为例,它的三个子菜单:地震快讯、震情概况和周边地震。用户点击地震快讯和震情概况子菜单后,将获得单图文信息且图文信息点击都对应着相应的网页链接。用户点击周边地震子菜单后,将获得图文信息且每条图文信息对应响应的网页链接。微信平台规定,要通过App ID和AppSecret向微信服务端获取ACCESS_TOKEN,获取ACCESS_TOKEN后,将POST特定的结构体到微信服务端(https://api. weixin.qq.com/cgi-bin/menu/create?access_token= ACCESS_TOKEN),POST具体结构如下所示:

{

"button":[

{

"name":"震情信息",

"sub_button":[

{

"type":"click",

"name":"地震快讯",

"key":"dzkx"

},

{

"type":"click",

"name":"震情概况",

"key":"myzq"

},

{

"type":"click",

"name":"周边地震",

"key":"zbdz"

}

]

}

]

}

各参数含义如表5[4]所示:正确时的返回JSON数据包如下:{"errcode":0,"errmsg":"ok"}。错误时的返回JSON数据包如下(示例为无效菜单名长度):{"errcode":40018,"errmsg":"invalid button name size"}。

表5 菜单结构体参数说明Table 5 Parameter description ofmenu structure

3.4菜单功能实现

微信公众号的接口规定,对于用户的每一个请求,开发者在响应包中返回特定XML结构,对该消息进行响应,响应的内容包括文本、图片、图文、网页链接、语音、视频、音乐。在本文的系统中点击菜单后反馈回用户的消息有两类:图文、网页浏览。其中用户点击后回复图文的子菜单有:地震快讯、震情概况、周边地震、科普知识;用户点击后直接跳转到网页浏览的子菜单有:讯息公告、预约参观、你问我答、建议收集、信息收集。

3.4.1反馈图文消息的实现

以地震快讯子菜单为例,当用户点击地震快讯子菜单,此时,用户发给服务系统的xml数据包如下:

分析上述的结构体后,将反馈给用户如下xml数据包:

<![CDATA[地震快讯]]>

其中,FromUserName和ToUserName为微信为各个用户分配的内部id;MsgType为发送的消息类型,此处为图文模式:news;ArticleCount为图文的条数,此处因为只反馈一条地震信息,所以为1;title为此条图文消息的标题,此处为:地震快讯;Description为从数据库中读取的最新地震信息的文本内容;PicUrl为根据震源经纬度获取的以震源为中心的google地图,像素为360x200。Url为图文消息的网页链接地址,实现效果如图1。

图1 地震快讯效果图Fig.1 The effect figure of earthquake newsmenu

3.4.2反馈网页浏览的实现

以预约参观子菜单为例,当用户发给服务系统的xml数据包如下:

分析上述的结构体后,将反馈给用户如下xml数据包:

其中,FromUserName和ToUserName为微信为各个用户分配的内部id;MsgType为发送的消息类型,此处为事件模式:event;Event事件类型,此处为浏览网页事件:event。EventKey为用户所浏览的网页地址,实现效果如图2。

4 结语

微信平台APP功能日益强大,运用日趋普及,已成为继QQ之后第二大移动互联网通信平台。本文提出的基于微信的地震行业APP服务系统——“南粤防震减灾”,已实现了上述所说的所有功能,但仍存在一些不足之处需要改进。首先,对建立的系统仍停留在功能的简单实现,未建立一个可视化后台管理界面对实现的功能进行统一便捷的管理。其次,由于微信具有上报地理位置功能,在未来的服务方面可以考虑将其与地震应急工作紧密联系,更大的拓展APP服务系统的能力。

“南粤防震减灾”虽然存在不足,但是在地震行业的APP服务系统开发中属于先驱,仍然可以给地震行业在建设地震行业微信APP服务系统时提供一种选择和参考。

[1]腾讯.微信FAQ[EB/0L].weixin.qq.com,2013-03-22.

[2]计世资讯.2011-2012年中国手机操作系统市场分析[EB/OL][2013-02-22].http//www.ciotimes.com/2012/ 0518/63643.html.

[3]黄浩波,何卫华,叶青.微信及其在图书馆信息服务中的应用[J].图书馆学刊,2013(1):62-64.

[4]袁媛,尹京苑.上海地震科学数据共享服务平台建设[J].华北地震科学,2014,32(01):16-21.

Design and Im plementation of Earthquake Industry APP Service System Based on Wechat

HE Ting1,2,3,YE Jianing1,2,3
(1.Earthquake Administration of Guangdong Province,Guangzhou,510070,China;2.Key Laboratory of Earthquake Monitoring and Disaster Mitigation Technology,CEA Guangzhou 510070,China;3.Key Laboratory of Guangdong Province Earthquake Early Warning and Safety Diagnosis of Major Projects,Guangzhou 510070,China)

The officialWeChat of Earthquake Administration Guangdong Province“Earthquake Prevention and Disasters Reduction of Southern Guangdong”,is a earthquake industry service system which is based on WeChat APP development.Taking the official WeChat of Earthquake Administration of Guangdong Province“Earthquake Prevention and Disasters Reduction of Southern Guangdong”,for instance,this paper introduces the research status,characteristics and advantages of the earthquake industry APP service system based on WeChat in domestic,the design and implementation of the official WeChat of Earthquake Administration of Guangdong Province“Earthquake Prevention and Disasters Reduction of Southern Guangdong”,aswell as the further improvement.

Wechat;Earthquake;APPService

P315.723

A

1001-8662(2015)02-0037-06

10.13512/j.hndz.2015.02.006

2014-09-27

广东省突发公共事件应急技术研究中心(2012A032100003)项目资助

何霆(1982-),男,工程师,主要软件开发和地震应急.

E-mail:78150433@qq.com.

猜你喜欢
图文菜单微信
画与理
中国新年菜单
微信
本月菜单
微信
微信
图文配
图文配
一个“公海龟”的求偶菜单
新书菜单