APP下载

地震信息微信公众号的建立与开发

2016-04-21刘洋君徐晓亮

山西地震 2016年1期
关键词:科普知识后台公众

刘洋君,徐晓亮,胡 捷

(1.湖南省地震局,湖南 长沙 410000;2.杭州海予网络有限公司,浙江 杭州 310013)



地震信息微信公众号的建立与开发

刘洋君1,徐晓亮2,胡捷1

(1.湖南省地震局,湖南长沙410000;2.杭州海予网络有限公司,浙江杭州310013)

摘要:该文简要介绍浙江省地震监测预报研究中心微信公众号建立的系统架构、实现的关键技术及实际应用情况。通过应用实例,说明该微信公众号可实现地震信息实时发布、地震科普知识及大震专题信息推送,并对存在的不足提出具体的改进措施。

关键词:地震信息;微信公众号;信息推送

0引言

随着汶川、玉树等地相继发生强震,公众对地震事件的关注程度逐渐提高,对防震减灾知识、地震信息等方面有了更多需求,而通过电视、广播、纸质资料等传统媒介的传播方式已不能满足公众的需求。微信作为一种新的信息传播方式,通过和特定群体的文字、图片、语音的全方位沟通、互动,使人们能够更加方便、快捷、 全面地认知各种信息。许多行业意识到微信的发展前景及用户量之后,将其作为发布自身信息的平台之一,或者作为扩大影响力的重要宣传手段之一[1]。

1系统功能及架构

1.1系统功能

地震信息微信公众号将地震事件以及地震科普知识等信息,通过微信平台实时推送至用户群个人终端,达到向公众提供地震信息服务的目的。主要包括以下功能:

(1) 地震速报信息实时推送。系统在地震发生后的第一时间,自动向微信公众号的所有粉丝发送地震三要素信息。

(2) 地震科普知识推送。在日常生活工作中,系统支持不定期地将地震科普信息、应急避难小常识等内容推送给微信公众号的粉丝群,达到普及地震科普知识的目的。

(3) 大震专题信息实时推送。当国内外发生重大地震后,该系统能及时向粉丝群传递震情、灾情等信息。

(4) 自动消息回复。系统利用微信自动回复功能,实现智能回答一些公众提出的常见问题,提高系统的智能化程度。

1.2系统架构

系统由四部分组成,分别为:接口层、数据库层、应用层以及展示层,各部分的功能结构如第24页图1所示。

(1) 接口层:实现实时对接地震局业务系统以及微信服务器功能。

(2) 数据库层:包括地震信息数据资料库、防震减灾知识资料库等。

(3) 应用层:主要实现后台管理(web)功能,关键字搜索、数据统计模块等功能。

(4) 展示层:通过手机终端显示信息。

整个系统采取信息交互的模式运行[2],可以自主地将地震科普和大于6级的地震信息推送到用户手机终端,也可以让管理员登录后台,手动发送地震信息和科普知识,用户也可以通过手机终端的菜单项查询自己感兴趣的地震信息。第24页图2为系统业务运行架构图。

2关键技术

微信公众号的开发可以使用PHP、ASP、JSP、Java等多种技术构建。该系统以浙江省地震监测预报研究中心的微信公众号为基础,采用Java技术搭建服务端,客户端网页的呈现采用ext技术来搭建。具体环境配置为:

windows 2007操作系统;oracle11g数据库;Apache Web服务器,端口:80。

图1 系统功能结构图Fig.1 Function structure of the system

图2 系统业务架构图Fig.2 Business architecture of the system

2.1地震信息实时发布

地震信息是通过地震数据同步软件将EQIM数据库中关于浙江地震台网监测到的地震速报信息[3]同步到微信库中,做到同步软件和微信服务器之间的耦合,保证地震信息及时传递给微信平台。同步软件一天24小时无人值守同步数据,保证数据的及时性和准确性。当有地震信息时,会自动同步到微信平台,系统进行判断:如果是浙江省发生地震或地震震级大于6级,则自动推送地震信息给48小时内有交互的用户,或1个月内还有群发条数的用户(1个月最多4条),并同步到微信数据库中。主要代码如下,第25页表1、表2为代码中主要参数说明表。

图文消息(注意图文消息的media_id需要通过下述方法来得到):

{

"touser":[

"OPENID1",

"OPENID2"

],

"mpnews":{

"media_id":"123dsdajkasd231jhksad"

},

"msgtype":"mpnews"

}

文本:

{

"touser":[

"OPENID1",

"OPENID2"

],

"msgtype": "text",

"text": { "content": "hello from boxer."}

}

返回将为

{

"type":"video",

"media_id":"IhdaAQXuvJt Gzwwc0abfXnzeezf O0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",

"created_at":1398848981

}

然后,POST下述数据(将media_id改为上一步中得到的media_id),即可进行发送

{

"touser":[

"OPENID1",

"OPENID2"

],

"video":{

"media_id":"123dsdajkasd231jhksad",

"title":"TITLE",

"description":"DESCRIPTION"

},

"msgtype":"video"

}

返回说明,返回数据示例(正确时的JSON返回结果):

{

"errcode":0,

"errmsg":"send job submission success",

"msg_id":34182,

"msg_data_id": 206227730

}

表2 参数说明表

在返回成功时,表明群发任务提交成功,但不意味着此时群发已经结束,所以,仍有可能在后续的发送过程中出现异常情况,导致用户未收到消息。如消息有时会进行审核、服务器不稳定等。此外,群发任务一般需要较长的时间才能全部发送完毕。

后台自动推送分为两种,一种是文本消息,另一种是图文消息,先做判断,然后才能自动推送。后台主要代码:

// 文本消息

if (null == resImage || "".equals(resImage)) {

//推送24小时内有交互的人

for(int j=0; j

//将24小时内没有交互的人的openId给openlist

}

//推送给所有用户

if(openlist.size() > 0){

}

//图文推送

}else{

//为24小时内有交互的人推送

for(int j=0; j

//将24小时内没有交互的人的openId给openlist

}

//推送给所有用户

if(openlist.size() > 0){

}

}

2.2地震信息查询

用户可以自主选择地震信息查询类型,有浙江地震、最新地震、24小时内、48小时内、最新统计、自定义查询、地震小常识和最新大震。微信平台会列出相应的信息,并可以详细查看。图文消息条数限制在10条以内,如果超过10条,则后台无响应。主要代码如下,第26页表3为代码主要参数说明表。

{

"touser":"OPENID",

"msgtype":"news",

"news":{

"articles": [

{

"title":"Happy Day",

"description":"Is Really A Happy Day",

"url":"URL",

"picurl":"PIC_URL"

},

{

"title":"Happy Day",

"description":"Is Really A Happy Day",

"url":"URL",

"picurl":"PIC_URL"

}

]

}

}

表3 参数说明表

后台代码:

// 自定义菜单点击事件

if (eventType.equals(MessageUtil.EVENT_TYPE_CLICK)) {

//浙江地震

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

//最新地震

} else if (eventKey.equals("12")) {

//24小时内地震

} else if (eventKey.equals("13")) {

//48小时内地震

} else if (eventKey.equals("14")) {

//自定义查询

} else if (eventKey.equals("22")) {

//地震小常识

} else if (eventKey.equals("23")) {

//最新大震

} else if (eventKey.equals("31")) {

}

}

2.3关键字查询

用户可以自定义输入关键字,查询想要得到的地震信息。如,输入“浙江”,会出现关于浙江的地震信息,并可以进一步查询详细的地震信息;输入“楼房”,会出现关于楼房的科普知识,并可查看全文。主要后台代码:

// 文本消息

if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {

if(list.size() == 0 || list == null || "".equals(list)){

//自定义查询搜索科普知识

}else{

//自定义查询搜索地震信息

}

}

3应用推广情况及实例

浙江省地震局开通的“浙江省地震监测预报研究中心”官方微信,于2014年4月得到微信平台的官方认证后正式运行,至今已近两年,关注人数增至一千多人,还在不断增多。2014年8月,温州珊溪水库库区发生最大震级为M4.2的地震群后,温州地区关注该公众号的人数明显增多,成为关注该公众号的主力人群。由此可见,该微信公众号的影响力在日益扩大。

目前,此公众号已实现自动推送地震信息、查询科普知识、报道大震专题等功能。图3、第27页图4为最新地震信息查询及震情信息详情主界面,第27页图5为科普知识查询,第27页图6为自动信息推送的实际应用截图。2016年1月2日12时22分19秒,在黑龙江牡丹江林口县发生M6.4地震,震源深度580 km,系统于12时36分向48小时活跃用户推送了这条地震信息。

图3 最新地震信息Fig.3 The latest earthquake information

图4 震情信息详情Fig.4 Earthquake situation information

图5 科普知识查询Fig.5 Query of popular science knowledge

4存在的不足及完善改进措施

该公众账号暂时未通过多种渠道向社会推广,主要是在地震系统内部进行宣传。在使用过程中,根据用户所提意见,对系统功能进行过修改和完善,但至今仍存在许多不足。如,微信公众平台限制每月后台自动推送的条数为4条,这显然是不够的,正与微信运营商积极协商,争取做到无自动推送条数的限制。自动推送地震时的过程耗时较长,未达到行业要求,需要在技术上进行优化。另外,要充分发挥微信公众号的作用,需要投入更多的精力,将微信、微博及门户网站进行信息对接与共享,使得在微博或网页上推出的重大消息、科普常识等也能在微信中进行实时推送。

图6 最新地震推送Fig.6 Push of the latest earthquake

参考文献:

[1]叶佳宁,何霆.地震信息微信自动发布系统的设计与实现[J].华北地震科学,2014,32(4):23-26.

[2]贺德强,鄢萍,刘飞,等.基于对等网络的网络化制造中信息交互模式及其实现[J].中国机械工程, 2004,15(3):218-219.

[3]杨陈,黄志斌,廖诗荣,等.全国自动地震速报系统介绍[J].地震地磁观测与研究,2010,31(5):158-161.

The Establishment and Development of Earthquake Information Public WeChat Account

LIU Yang-jun1, XU Xiao-liang2, HU Jie1

(1.Earthquake Administration of Hu’nan Province, Changsha, Hu’nan 410000, China;2.Hangzhou Haiyu Network Co. Ltd., Hangzhou, Zhejiang 310013, China)

Abstract:System architecture, key technology and the application of public WeChat account of the center of earthquake monitoring and prediction research in Zhejiang Province are briefly introduced. This public WeChat account can realize real-time earthquake information releasing , information push of earthquake popular science and large earthquake special. And the improvement measures for existing problems are put forward.

Key words:Earthquake information; Public WeChat account; Information push

中图分类号:P315.99

文献标志码:A

作者简介:第一刘洋君(1982—),男,湖南省常德人。2009年毕业于中国地震局地震预测研究所,硕士研究生,工程师。

收稿日期:2016-01-04

文章编号:1000-6265(2016)01-0023-05

猜你喜欢

科普知识后台公众
公众号3月热榜
公众号9月热榜
公众号8月热榜
公众号5月热榜
后台暗恋
科普知识
科普知识
后台朋友
后台的风景
科普知识