基于微信API的民航气象移动服务平台开发

2019-06-20 01:34张晓峰
科技视界 2019年12期
关键词:气象服务

【摘 要】本文叙述了通过检索数据并触发后台程序调用微信平台消息接口,实现向用户自动发送预警信息的方法。同时实现了通过调用微信被动響应消息接口自动回复用户菜单及文字查询事件。此外,还可通过OAuth2.0授权,实现用户静默登陆服务页面等综合呈现方式的民航气象微信服务平台。相比APP方式更具有适用性和可推广性。对气象服务的延伸与扩展有一定参考意义。

【关键词】民航气象;气象服务;微信API

中图分类号: V321.2;G206 文献标识码: A 文章编号: 2095-2457(2019)12-0223-002

DOI:10.19694/j.cnki.issn2095-2457.2019.12.107

【Abstract】This paper describes how to automatically send early warning information to users by retrieving data and triggering background program to call the message interface of Wechat platform.By calling the passive response message interface of Wechat to realize automatic reuse of user menus and text query events,as well as through OAuth 2.0 authorization,the civil aviation meteorological Wechat service platform with integrated presentation mode such as user silent landing service page is realized.Compared with APP,it has more applicability and generalization.It has certain reference significance for the extension and expansion of meteorological services.

【Key words】Aviation Meteorological;Meteorological Service;Wechat API

0 引言

近年来,随着民航气象用户对民航气象服务日益增长的需求,有待民航气象服务的有效性、及时性和全面性进一步提高,催生了民航信息服务向自动化、智能化、移动化发展。出现了一些服务技术、服务方式、服务制度的创新,有效提升了气象服务能力。本文通过微信平台实现气象信息的发布。能够实现预警信息的订阅与推送,图形及文字信息的查询,方便了用户第一时间获取气象服务信息,提升了用户体验,减轻了人工劳动和咨询负担,是一种创新性的气象服务模式。

相比于APP等的实现方式,微信平台方式具有客户端免安装、免升级、跨平台,无需考虑移动设备兼容性和移植性,应用管理、用户管理、权限管理便捷等优势,同时利用OAuth2.0授权,可实现用户以微信号静默登陆服务页面,免去注册及输入账户密码登陆等繁琐环节。

1 系统结构设计

1.1 设计思路

以微信企业号或服务号应用作为用户层应用端。数据源端程序用于监听气象数据库中的预警信息,并将检索到的最新预警信息推送给服务端,同时定时检索报文、雷达图等数据资料,上传给服务端。服务端程序运行于公网服务器,将来自数据源端的预警信息推送给用户,当用户发起查询时间时,响应用户查询事件。微信支持的信息类型适用的气象服务产品如表1所示。

1.2 流程架构

如图1所示,内外数据源经串口将数据通过串口DTU单向发送到公网服务器,在微信后台绑定公网服务器URL,即开启应用的回调模式,在回调模式下,可以通过调用微信接口,处理消息事件,从而实现与用户的交互。

2 技术实现

2.1 主动消息推送

主动消息是指,在用户无任何操作的情况下,服务器将消息主动发送到用户端并提醒用户查看,适用于机场警报等预警信息的推送。传递的消息需使用Https协议并以JSON格式的数据包发送,数据包不需做加密处理。以企业号的文本消息为例,数据格式[1]如下:

其中touser、toparty和totag分别指的是成员、部门及标签的ID列表,msgtype为消息类型,可以是text、image、voice、video、file、news和mpnews等类型,分别对应文字、图片、语音、视频、文件、图文消息。agentid为企业应用的id,content是消息内容。当消息中包含图片、文件、视频等媒体信息时,需先将媒体文件通过微信上传素材接口上传至微信服务器,并获得相应的media_id,并以"media_id":"MEDIA_ID"的方式包含在json格式数据中。

当系统获得一份最新的机场警报时,先提取有效的警报文字内容,再填入json格式数据的content字段,并调用微信的发送消息接口[1]:

https://qyapi.weixin.qq.com/cgi-bin/message/send?acc ess_token=ACCESS_TOKEN

然后以POST方式,将json格式数据包提交给该接口,微信服务方将其解析后,把消息发送给json格式数据中设定的成员或部门。其中ACCESS_TOKEN是微信应用的全局唯一票据,可通过微信后台设定的CorpID和Secret通过GET方式从微信的gettoken接口获得,调用其他接口时一般都要携带AccessToken。

2.2 被动消息响应

微信服务端可以接收来自用户发送的消息,并做出相应的响应,消息类型可以是文本、图片、语音、视频、地理位置、菜单事件等类型。接收并响应用户的消息可以用于满足用户的部分查询需求。例如用户在微信公众号对话框中输入:"ZBAA",服务器收到后在后查询对应ZBAA的数据资料并以某种消息类型返回给用户,实现便捷的查询操作。

在微信企业号中,用户发送的消息、操作事件及响应用户的消息是以XML格式包发送的,并经过加密后传输。以菜单事件为例,数据格式[1]如下:

其中,ToUserName为企业号的企业号CorpID,FromUserName为成员UserID,CreateTime为消息创建的时间,MsgType为消息类型,Event为事件类型,EventKey为事件KEY值,与自定义菜单接口中KEY值对应,AgentID为企业应用的ID。

服务端在收到此消息并按照微信接口文档提供的AES加解密方案解密后,得到上述明文结构的XML格式数据,并解析即可获得用户发起的菜单点击事件的EventKey值,并做出响应,向用户返回查询信息。返回的信息同样是以XML格式的数据,并包含接收方的UserID,发送内容可以是文字、图像、音视频、图文等形式,如果有媒体文件需先获取Media ID再包含在XML格式数据中,并按照加解密方案加密后发送。微信服务方解析后将数据发送给用户。

2.3 授权登陆

当用户面临较为复杂、连贯的查询应用或接收较为复杂的信息且需要与发起交互式操作时,微信的几种消息类型往往难以满足了,此时我们通常需要以Web页面的方式向用户呈现,并向用户提供交互式操作前端界面。由于微信内置了浏览器,能够方便地在微信中打开页面,并通过授权方式直接以微信账户登陆,与通过独立浏览器或APP访问的方式相比,在操作上更加便捷,实现账户较高安全级别的成本也较低。

OAuth(开放授权)协议是一个开放标准,允许用户通过第三方应用访问网站资源,而无需将用户名和密码提供给第三方应用。目前以广泛应用于互联网各大开放平台。在微信中,可以在用户访问登陆页面时,通过调用微信的OAuth2.0验证接口来获取成员的身份信息,如果获取用户信息成功,则说明用户为本微信号的合法成员,可根据返回的信息构造Cookie保存在用户端,并跳转至服务页面,服务页面验证Cookie的有效性后向用户提供服务,当Cookie在有效期内,用户可 直接访问服务页面,有效期结束后将跳转登陆页面重新通过验证接口验证成员并获得新的Cookie。若通过验证接口无法获取用户信息时,说明该用户为非成员,将跳转至404错误页面。该流程如圖2所示。

3 应用分析

“云南空管气象”是基于微信企业号开发的微信服务平台。实现了上述三种方式的微信接口调用,涵盖了当前能够提供给用户的多种气象产品。如图3所示,包括文字格式的机场警报、终端区预警、MDRS以及图文格式的区域预警推送,报文、雷达图、卫星云图的查询,以及Web形式的自动气象观测数据查询界面。截至目前,已经覆盖了昆明机场几乎所有航空气象用户。通过提供便捷的气象信息服务,同时减轻了气象服务机构的咨询负担。

4 结束语

微信气象服务在公众气象服务领域已经较为普及[2],而航空气象服务由于资料的专业性、多样性和高时效性,一直以来相对较难形成完善、统一的服务模式。本文叙述了实现各类气象服务资料在微信平台的展示方式和实现技术,对民航气象服务方式提供了一种较为有效的延伸和补充。

【参考文献】

[1]企业微信API文档[EB/OL].https://work.weixin.qq.com/api/doc.

[2]邓小良,廖慧娟,郭永婷,等.微信在气象服务中的应用及发展[J].广东气象,2015,37(6):61-63.作者简介:张晓峰(1984—),男,工程师,工作于云南空管分局,研究方向为民航气象信息技术。

猜你喜欢
气象服务
共和县公共气象服务满意度调查分析
国家突发事件预警信息发布系统对河南省气象服务提升的作用
农业生产中气象服务的重要性及改进途径
新形势下防雷减灾工作的现状分析及发展思路