地震信息微信公众平台服务开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 避难场所查询
用户将位置信息上报后,应用服务器根据经纬度信息计算距离用户 50 km 内的避难
场所,并根据距离远近进行排序,最后将避难场所的位置、容纳人数、距离等信息以图
片消息的形式进行发送,可以在腾讯地图上查看对应场所的具体位置信息。若用户上报
的位置信息不在河南省内,则无法实现避难场所信息的推送,会提示“本公众号只能提供
在 2013 年 4 月 20 日四川芦山地震中,近 15 万人使用微信关注“芦山地震救助”,实 时发送消息达 20 余万条,在震后灾情收集和应急救援工作中发挥了巨大作用。如何借助 微信公众平台向社会民众推送震情信息,提供历史地震信息查询、震中信息展示(和朝霞, 2012)、震中距测算、应急避难场所查询、地震科普知识宣传等功能,是本文研究的主要 内容。
第 37 卷 第 1 期 2016 年 2 月
地震地磁观测与研究 SEISMOLOGICAL AND GEOMAGNETIC
OBSERVATION AND RESEARCH
doi: 10. 3969/j. issn. 1003-3246. 2016. 01. 025
Vol.37 No. 1 Feb. 2016
1 设计方案
1.1 设计思路 微信公众平台账号类型分为服务号和订阅号。服务号特点是,每月可以群发 4 条信
息给用户,群发消息不显示在聊天列表,下发消息即时推送用户,默认可以自动获得自 定义菜单,在申请并获得微信认证后可以获得高级接口权限,并开启编辑模式进行个性 化开发,服务号旨在为用户提供个性化定制服务。订阅号特点是,每天可群发一条信息
150
地震地磁观测与研究
37 卷
3 应用
“河南地震公众服务”自 2014 年 12 月上线测试以来,向公众推送全球范围内震情信 息共计 976 条。2015 年 1 月 18 日 11 时 01 分在河南省濮阳市范县发生 3.9 级地震,“河 南地震公众服务”在地震发生后的 10 min 内向公众自动发布该震情信息,自动测算用户 位置与震中间距,并向用户及时推送附近避难场所的具体信息和位置信息,收到良好的 社会效应。“河南地震公众服务”微信平台对防震减灾宣传、地震信息服务起到积极作用, 并将河南省地震应急避难场所的成果进行有益推广,为震后民众的合理有序安置提供了 有力保障。
148
地震地磁观测与研究
37 卷
(2)地震应对。地震应对为一级菜单,包含避难规划、位置服务两个二级菜单。避难 规划功能可基于用户位置经纬度信息计算 50 km 内的应急避难场所,以图文消息格式发 送给用户,在腾讯 MAP 上标注避难场所地理位置,下面罗列应急避难场所名字、位置 以及距离用户千米数。应急避难场所数据要素包括避难场所名字、经度、纬度、可容纳 人数、类别、位置(图 4)。用户可通过位置服务向微信服务器发送位置信息,并可提供 位置的查询搜索服务。
河南省内应急避难场所查询”。具体代码如下。
If ($distance < 50000){ shopSortArrays[$distance] = array( "Title"=>【" ".$stlist[$i]['name']."】\n 距离 ".round(($distance / 1000), 1)." 公里 容纳 ".round($stlist[$i] ['accommodate'], 1)." 万人 ", } ksort($shopSortArrays);// 排序 $shopArray = array(); $shopArray[] = array("Title" =>' 附近避难所 ',"Description" =>"", "PicUrl" =>"", "Url" =>""); foreach ($shopSortArrays as $key => $value) { $shopArray[] = $value; if (count($shopArray) > 9){break;} } if (count($shopArray) == 1) {$content = " 附近 50 km 内没有查询到应急避难场所,本公众号只能提供河南省内应急避难场所 查询 "; } else{ $content = $shopArray; }
微 信 服 务 器 接 收 到 用 户 的“ 位 置 服 务 ”消 息 请 求 后 , 返 回 用 户 的 经 纬 度 信 息 , 并 调
取腾讯地图进行回复,用户点击进入地图后可以进行导航查询。回复地理位置消息样
例如下。
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[LOCATION]]></Event> <Latitude>23.137466</Latitude> <Longitude>113.352425</Longitude> <Precision>119.385040</Precision> </xml>
0 引言
随着移动互联网技术的不断发展,智能手机的快速普及,各种即时通讯应用软件层 出不穷。微信公众平台作为目前影响力最大、发展最为成熟的即时通讯传播媒介,已为 人们广泛应用。根据中国互联网信息中心(CNNIC)的研究:自 2012 年 8 月微信公众平 台 诞 生,2013 年 11 月 就 突 破 200 个 公 众 账 号, 截 至 2014 年 7 月 底 微 信 公 众 号 达 580 万,每日新增 1.5 万个。截至 2014 年 5 月,65% 的中国网民(8 亿)使用微信。目前微 信公众平台已经被广泛用于图书馆信息服务(黄浩波等,2013;江波等,2103;张蓓等, 2014;李文江等,2014)、航运信息服务(詹鑫红,2014)、中小企业 CRM 系统(肖富春, 2014)、移动银行服务(甘荣石,2014)、媒体、公益组织等领域。
当用户向微信公众账号发消息时,指令解析模块负责解析来自微信服务器的 POST 请求,匹配消息类型和指令,调用具体的服务子模块处理。请求消息的格式为 XML,请 求地理位置消息样例如下。
第1期
徐 丹等:地震信息微信公众平台服务开发
149
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1351776360</CreateTime> <MsgType><![CDATA[location]]></MsgType> <Location_X>23.134521</Location_X> <Location_Y>113.358803</Location_Y> <Scale>20</Scale> <Label><![CDATA[ 位置服务 ]]></Label> <MsgId>1234567890123456</MsgId> </xml>
(3)科普宣传。科普宣传为一级菜单,包含“避震常识”“联系我们”两个二级菜单。 避 震 常 识 功 能 以 图 文 消 息 格 式 回 复 用 户 , 内 容 包 含 文 字 、 图 片 , 由“ 联 系 我 们 ”模 块 转 到地震局地震信息网(图 5)。通过微信公众平台,管理员每月可向用户推送 4 条多图文 消息。
互性强、即时性强的特点。平台在获取用户地理位置信息基础上,能够将地震信息通过
地图标注的方式立体直观地展现给用户,并进行震中距测算;还可将应急避难场所的名
称、位置、容纳、人数,以图文消息方式进行推送,实现地图展示;同时能够将地震科
普知识编辑成多图文消息进行推送。
1.2 架构
管理员利用开发模式,在微信公众平台中配置消息接口,接入微信消息处理模块;
微信用户向微信公众号发送查询消息指令时,微信服 务器将消息转发至微信公众平台;微信公众平台根据
ॱζၸਖ਼ࠆਖ਼ቪ
预先配置的接口,将消息转发给消息处理模块;消息 Ԧᤞ๖ো
ܬٿ๖ো
处理模块会分析用户发送消息的内容,按照功能模块 对应的 Web 应用服务生成回复消息并返回给微信公 众平台,用户最终接受到回复消息。功能模块对应的
地震信息微信公众平台服务开发
徐 丹 韩艳杰 张诺男 寇曼曼 高冠龙
(中国郑州 450016 河南省地震局)
摘要 微信公众平台作为一种新的即时通讯产品,被广泛应用于各行各业。利用微信公众 服务平台开发模式下的高级接口,实现震情信息的即时推送、历史地震查询、位置服务、 应急避难场所查询和地震科普知识宣传等功能,从而扩展地震信息的服务渠道,提升地震 行业公众服务能力,具有较强的实用性。 关键词 微信公众平台;震情推送;位置服务;科普宣传
第1期
徐 丹等:地震信息微信公众平台服务开发
1ቤተ መጻሕፍቲ ባይዱ7
给用户,群发消息隐藏在订阅号文件夹,群发消息不会提示推送,认证后可以申请自定
义菜单,订阅号主要用于提供信息和资讯。
在开发模式下,地震微信公众平台可以进行关注回复、发送地理位置信息、推送图
文消息,还可以结合腾讯地图等第三方地图提供商进行基于 LBS 的个性化开发,具有交
图 4 避难规划和位置服务 Fig.4 Earthquake emergency shelter planning
and location based service
图 5 科普宣传和联系我们菜单 Fig.5 Science popularization and contact us
2 具体实现
2.1 消息接口配置 消息接口配置是微信公众号实现地震信息推送服务功能的前提。开通微信公众号后,
登录微信公众平台,启用“高级功能”菜单中的“开发模式”。登记接口的 URL 和 Token, 实现网址接入。Token 用于生产签名,URL 则填写用于消息处理的服务器资源。
信息提交时,微信服务器将 GET 请求填写在 URL 上进行发送。请求包括 4 个参数: Signature(微信加密签名)、Timestamp(时间戳)、Nonce(随机数)和 Echostr(随机字 符串)。消息处理服务器将检验 Signature,如果确认请求来自微信服务器,则原样返回 Echostr 参数内容,表示接入生效,反之接入失败。成功配置接口后,发送至微信公众号 的消息将被转发给所登记的 URL,并由指令解析模块和各个服务子模块完成消息的解析 和回复。 2.2 消息发送与接收
地震微信公众平台的主要功能有震情服务、地震应对和科普宣传。
(1)震情服务。震情服务为一级菜单,包含最新震情、历史震情两个二级菜单。同时,
可实现最新震情的自动推送功能,主要包括震中、时间、震级信息,可将震中位置标注
在腾讯地图上,并测算震中距离(图 2)。
最新震情为最近发生的一次地震,包括地震三要素,震中距等信息。用户点击菜单后,
作者简介:徐丹(1983—),女,工程师,2009 年毕业于重庆邮电大学,获硕士学位,主要从事地震应急指挥技术系 统运维工作 基金项目:河南省地震局科研基金项目《河南地震微信公众平台服务的设计与实现》(201406)和中国地震局地震应 急青年重点任务——《基于百度 MAP 的地震应急避难场所信息管理系统的设计与实现》 本文收到日期:2015-07-15
以图文信息格式推送给用户,图文格式与自动推送震情时的格式相同。历史震情显示最
近发生的 10 次地震,点击后可在地图上查看震中位置及地震三要素等信息(图 3)。
图 2 震情自动推送 Fig.2 Earthquake information automatically push
图 3 最新震情和历史地震 Fig.3 The latest earthquake and history earthquake
ॱζМࣰ͔Իనҫ٧
ԦᤞXML ፆౝ๖ো
ܬٿXML ፆౝ๖ো
Web 应用服务是微信公众平台服务实现的关键,负责 分析用户发送的消息指令并将其转化为相应服务子模 块的功能调用。系统平台架构见图 1。 1.3 功能
Web ःၸనҫ٧
图 1 总体架构 Fig.1 Overall architecture
用户将位置信息上报后,应用服务器根据经纬度信息计算距离用户 50 km 内的避难
场所,并根据距离远近进行排序,最后将避难场所的位置、容纳人数、距离等信息以图
片消息的形式进行发送,可以在腾讯地图上查看对应场所的具体位置信息。若用户上报
的位置信息不在河南省内,则无法实现避难场所信息的推送,会提示“本公众号只能提供
在 2013 年 4 月 20 日四川芦山地震中,近 15 万人使用微信关注“芦山地震救助”,实 时发送消息达 20 余万条,在震后灾情收集和应急救援工作中发挥了巨大作用。如何借助 微信公众平台向社会民众推送震情信息,提供历史地震信息查询、震中信息展示(和朝霞, 2012)、震中距测算、应急避难场所查询、地震科普知识宣传等功能,是本文研究的主要 内容。
第 37 卷 第 1 期 2016 年 2 月
地震地磁观测与研究 SEISMOLOGICAL AND GEOMAGNETIC
OBSERVATION AND RESEARCH
doi: 10. 3969/j. issn. 1003-3246. 2016. 01. 025
Vol.37 No. 1 Feb. 2016
1 设计方案
1.1 设计思路 微信公众平台账号类型分为服务号和订阅号。服务号特点是,每月可以群发 4 条信
息给用户,群发消息不显示在聊天列表,下发消息即时推送用户,默认可以自动获得自 定义菜单,在申请并获得微信认证后可以获得高级接口权限,并开启编辑模式进行个性 化开发,服务号旨在为用户提供个性化定制服务。订阅号特点是,每天可群发一条信息
150
地震地磁观测与研究
37 卷
3 应用
“河南地震公众服务”自 2014 年 12 月上线测试以来,向公众推送全球范围内震情信 息共计 976 条。2015 年 1 月 18 日 11 时 01 分在河南省濮阳市范县发生 3.9 级地震,“河 南地震公众服务”在地震发生后的 10 min 内向公众自动发布该震情信息,自动测算用户 位置与震中间距,并向用户及时推送附近避难场所的具体信息和位置信息,收到良好的 社会效应。“河南地震公众服务”微信平台对防震减灾宣传、地震信息服务起到积极作用, 并将河南省地震应急避难场所的成果进行有益推广,为震后民众的合理有序安置提供了 有力保障。
148
地震地磁观测与研究
37 卷
(2)地震应对。地震应对为一级菜单,包含避难规划、位置服务两个二级菜单。避难 规划功能可基于用户位置经纬度信息计算 50 km 内的应急避难场所,以图文消息格式发 送给用户,在腾讯 MAP 上标注避难场所地理位置,下面罗列应急避难场所名字、位置 以及距离用户千米数。应急避难场所数据要素包括避难场所名字、经度、纬度、可容纳 人数、类别、位置(图 4)。用户可通过位置服务向微信服务器发送位置信息,并可提供 位置的查询搜索服务。
河南省内应急避难场所查询”。具体代码如下。
If ($distance < 50000){ shopSortArrays[$distance] = array( "Title"=>【" ".$stlist[$i]['name']."】\n 距离 ".round(($distance / 1000), 1)." 公里 容纳 ".round($stlist[$i] ['accommodate'], 1)." 万人 ", } ksort($shopSortArrays);// 排序 $shopArray = array(); $shopArray[] = array("Title" =>' 附近避难所 ',"Description" =>"", "PicUrl" =>"", "Url" =>""); foreach ($shopSortArrays as $key => $value) { $shopArray[] = $value; if (count($shopArray) > 9){break;} } if (count($shopArray) == 1) {$content = " 附近 50 km 内没有查询到应急避难场所,本公众号只能提供河南省内应急避难场所 查询 "; } else{ $content = $shopArray; }
微 信 服 务 器 接 收 到 用 户 的“ 位 置 服 务 ”消 息 请 求 后 , 返 回 用 户 的 经 纬 度 信 息 , 并 调
取腾讯地图进行回复,用户点击进入地图后可以进行导航查询。回复地理位置消息样
例如下。
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[LOCATION]]></Event> <Latitude>23.137466</Latitude> <Longitude>113.352425</Longitude> <Precision>119.385040</Precision> </xml>
0 引言
随着移动互联网技术的不断发展,智能手机的快速普及,各种即时通讯应用软件层 出不穷。微信公众平台作为目前影响力最大、发展最为成熟的即时通讯传播媒介,已为 人们广泛应用。根据中国互联网信息中心(CNNIC)的研究:自 2012 年 8 月微信公众平 台 诞 生,2013 年 11 月 就 突 破 200 个 公 众 账 号, 截 至 2014 年 7 月 底 微 信 公 众 号 达 580 万,每日新增 1.5 万个。截至 2014 年 5 月,65% 的中国网民(8 亿)使用微信。目前微 信公众平台已经被广泛用于图书馆信息服务(黄浩波等,2013;江波等,2103;张蓓等, 2014;李文江等,2014)、航运信息服务(詹鑫红,2014)、中小企业 CRM 系统(肖富春, 2014)、移动银行服务(甘荣石,2014)、媒体、公益组织等领域。
当用户向微信公众账号发消息时,指令解析模块负责解析来自微信服务器的 POST 请求,匹配消息类型和指令,调用具体的服务子模块处理。请求消息的格式为 XML,请 求地理位置消息样例如下。
第1期
徐 丹等:地震信息微信公众平台服务开发
149
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1351776360</CreateTime> <MsgType><![CDATA[location]]></MsgType> <Location_X>23.134521</Location_X> <Location_Y>113.358803</Location_Y> <Scale>20</Scale> <Label><![CDATA[ 位置服务 ]]></Label> <MsgId>1234567890123456</MsgId> </xml>
(3)科普宣传。科普宣传为一级菜单,包含“避震常识”“联系我们”两个二级菜单。 避 震 常 识 功 能 以 图 文 消 息 格 式 回 复 用 户 , 内 容 包 含 文 字 、 图 片 , 由“ 联 系 我 们 ”模 块 转 到地震局地震信息网(图 5)。通过微信公众平台,管理员每月可向用户推送 4 条多图文 消息。
互性强、即时性强的特点。平台在获取用户地理位置信息基础上,能够将地震信息通过
地图标注的方式立体直观地展现给用户,并进行震中距测算;还可将应急避难场所的名
称、位置、容纳、人数,以图文消息方式进行推送,实现地图展示;同时能够将地震科
普知识编辑成多图文消息进行推送。
1.2 架构
管理员利用开发模式,在微信公众平台中配置消息接口,接入微信消息处理模块;
微信用户向微信公众号发送查询消息指令时,微信服 务器将消息转发至微信公众平台;微信公众平台根据
ॱζၸਖ਼ࠆਖ਼ቪ
预先配置的接口,将消息转发给消息处理模块;消息 Ԧᤞ๖ো
ܬٿ๖ো
处理模块会分析用户发送消息的内容,按照功能模块 对应的 Web 应用服务生成回复消息并返回给微信公 众平台,用户最终接受到回复消息。功能模块对应的
地震信息微信公众平台服务开发
徐 丹 韩艳杰 张诺男 寇曼曼 高冠龙
(中国郑州 450016 河南省地震局)
摘要 微信公众平台作为一种新的即时通讯产品,被广泛应用于各行各业。利用微信公众 服务平台开发模式下的高级接口,实现震情信息的即时推送、历史地震查询、位置服务、 应急避难场所查询和地震科普知识宣传等功能,从而扩展地震信息的服务渠道,提升地震 行业公众服务能力,具有较强的实用性。 关键词 微信公众平台;震情推送;位置服务;科普宣传
第1期
徐 丹等:地震信息微信公众平台服务开发
1ቤተ መጻሕፍቲ ባይዱ7
给用户,群发消息隐藏在订阅号文件夹,群发消息不会提示推送,认证后可以申请自定
义菜单,订阅号主要用于提供信息和资讯。
在开发模式下,地震微信公众平台可以进行关注回复、发送地理位置信息、推送图
文消息,还可以结合腾讯地图等第三方地图提供商进行基于 LBS 的个性化开发,具有交
图 4 避难规划和位置服务 Fig.4 Earthquake emergency shelter planning
and location based service
图 5 科普宣传和联系我们菜单 Fig.5 Science popularization and contact us
2 具体实现
2.1 消息接口配置 消息接口配置是微信公众号实现地震信息推送服务功能的前提。开通微信公众号后,
登录微信公众平台,启用“高级功能”菜单中的“开发模式”。登记接口的 URL 和 Token, 实现网址接入。Token 用于生产签名,URL 则填写用于消息处理的服务器资源。
信息提交时,微信服务器将 GET 请求填写在 URL 上进行发送。请求包括 4 个参数: Signature(微信加密签名)、Timestamp(时间戳)、Nonce(随机数)和 Echostr(随机字 符串)。消息处理服务器将检验 Signature,如果确认请求来自微信服务器,则原样返回 Echostr 参数内容,表示接入生效,反之接入失败。成功配置接口后,发送至微信公众号 的消息将被转发给所登记的 URL,并由指令解析模块和各个服务子模块完成消息的解析 和回复。 2.2 消息发送与接收
地震微信公众平台的主要功能有震情服务、地震应对和科普宣传。
(1)震情服务。震情服务为一级菜单,包含最新震情、历史震情两个二级菜单。同时,
可实现最新震情的自动推送功能,主要包括震中、时间、震级信息,可将震中位置标注
在腾讯地图上,并测算震中距离(图 2)。
最新震情为最近发生的一次地震,包括地震三要素,震中距等信息。用户点击菜单后,
作者简介:徐丹(1983—),女,工程师,2009 年毕业于重庆邮电大学,获硕士学位,主要从事地震应急指挥技术系 统运维工作 基金项目:河南省地震局科研基金项目《河南地震微信公众平台服务的设计与实现》(201406)和中国地震局地震应 急青年重点任务——《基于百度 MAP 的地震应急避难场所信息管理系统的设计与实现》 本文收到日期:2015-07-15
以图文信息格式推送给用户,图文格式与自动推送震情时的格式相同。历史震情显示最
近发生的 10 次地震,点击后可在地图上查看震中位置及地震三要素等信息(图 3)。
图 2 震情自动推送 Fig.2 Earthquake information automatically push
图 3 最新震情和历史地震 Fig.3 The latest earthquake and history earthquake
ॱζМࣰ͔Իనҫ٧
ԦᤞXML ፆౝ๖ো
ܬٿXML ፆౝ๖ো
Web 应用服务是微信公众平台服务实现的关键,负责 分析用户发送的消息指令并将其转化为相应服务子模 块的功能调用。系统平台架构见图 1。 1.3 功能
Web ःၸనҫ٧
图 1 总体架构 Fig.1 Overall architecture