亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于互聯(lián)網(wǎng)開(kāi)放平臺(tái)的微信公眾號(hào)構(gòu)建

        2017-06-22 08:42:14段任
        中國(guó)管理信息化 2017年5期
        關(guān)鍵詞:開(kāi)放平臺(tái)

        段任

        (云南財(cái)經(jīng)大學(xué) 信息學(xué)院,昆明 650221)

        [摘 要] 互聯(lián)網(wǎng)企業(yè)基于自身業(yè)務(wù)與技術(shù)優(yōu)勢(shì)向第三方開(kāi)發(fā)者、商戶等提供開(kāi)放平臺(tái),支持業(yè)務(wù)邏輯處理、數(shù)據(jù)存儲(chǔ)、計(jì)算能力等的開(kāi)放API接入,有效提高了互聯(lián)網(wǎng)生產(chǎn)力水平,促進(jìn)了業(yè)態(tài)創(chuàng)新,有力推動(dòng)了“互聯(lián)網(wǎng)+”的生態(tài)擴(kuò)展?;诖?,本文提出了一個(gè)基于互聯(lián)網(wǎng)開(kāi)放平臺(tái)的微信公眾號(hào)構(gòu)建方案,以提高公眾號(hào)開(kāi)發(fā)效率,降低其應(yīng)用成本。

        [關(guān)鍵詞] 開(kāi)放平臺(tái);開(kāi)放API;微信公眾號(hào)構(gòu)建

        doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 05. 086

        [中圖分類號(hào)] TP311 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 1673 - 0194(2017)05- 0160- 03

        1 背景及意義

        微信公眾號(hào)被廣泛用于各種主題的宣傳與商業(yè)服務(wù),其構(gòu)建可采取編輯模式與開(kāi)發(fā)模式,前者通過(guò)圖形界面操作訂制公眾號(hào),限于簡(jiǎn)單功能,無(wú)法實(shí)現(xiàn)個(gè)性化及深入服務(wù)。開(kāi)發(fā)模式通過(guò)編程實(shí)現(xiàn),需要建立微信消息框架,通過(guò)標(biāo)準(zhǔn)的互聯(lián)網(wǎng)服務(wù)提供訪問(wèn),支持更多高級(jí)的個(gè)性化應(yīng)用,但開(kāi)發(fā)成本較高。

        本文提出利用互聯(lián)網(wǎng)開(kāi)放平臺(tái)構(gòu)建微信公眾號(hào)的方案,可有效利用網(wǎng)絡(luò)服務(wù)商的富集資源,減少公眾號(hào)的數(shù)據(jù)存儲(chǔ)、服務(wù)實(shí)現(xiàn)成本,提高開(kāi)發(fā)效率。

        2 系統(tǒng)架構(gòu)

        微信開(kāi)放平臺(tái)通過(guò)公眾號(hào)與關(guān)注用戶間信息交換實(shí)現(xiàn)服務(wù)功能,公眾號(hào)能提供多媒體信息的規(guī)模推送、定向(如性別、地區(qū)、分組等)推送、對(duì)一互動(dòng)、智能回復(fù)等功能,有力支持客戶的宣傳、營(yíng)銷、客服、公共服務(wù)等應(yīng)用。公眾號(hào)功能服務(wù)通過(guò)微信開(kāi)放平臺(tái)開(kāi)發(fā)接口提供訪問(wèn),微信開(kāi)放平臺(tái)支持互聯(lián)網(wǎng)第三方服務(wù)的接入。因此,微信公眾號(hào)可以有效利用互聯(lián)網(wǎng)已有開(kāi)放平臺(tái)資源提供的豐富功能,據(jù)此構(gòu)建的公眾號(hào)可采用如下系統(tǒng)架構(gòu)。

        微信用戶通過(guò)終端登錄微信,發(fā)出應(yīng)用請(qǐng)求到微信接入服務(wù)器,接入服務(wù)器將應(yīng)用請(qǐng)求轉(zhuǎn)發(fā)給公眾號(hào)服務(wù)器處理。公眾號(hào)服務(wù)器根據(jù)應(yīng)用請(qǐng)求向具體的第三方平臺(tái)請(qǐng)求服務(wù),將返回的服務(wù)結(jié)果發(fā)送給接入服務(wù)器,接入服務(wù)器再將結(jié)果發(fā)送到用戶終端的微信上。公眾號(hào)服務(wù)器是一個(gè)邏輯服務(wù)器,聚合第三方開(kāi)放平臺(tái)的多種服務(wù)形成,可以集成數(shù)據(jù)存儲(chǔ)、Web應(yīng)用以及其他業(yè)務(wù)功能。

        為完成對(duì)用戶微信消息的接收及對(duì)應(yīng)事件處理,公眾號(hào)要在公眾號(hào)服務(wù)器上指定第三方開(kāi)放平臺(tái)上的服務(wù)接口URL,從而有效實(shí)現(xiàn)服務(wù)請(qǐng)求轉(zhuǎn)發(fā)與響應(yīng)接收。第三方平臺(tái)到微信開(kāi)放平臺(tái)的接口調(diào)用需要獲取訪問(wèn)憑證access_token。一個(gè)公眾號(hào)申請(qǐng)獲批后,會(huì)分配AppID(應(yīng)用ID)、AppSecret(應(yīng)用密鑰)作為第三方用戶接入的唯一憑證與憑證密鑰。在每次請(qǐng)求調(diào)用微信開(kāi)放平臺(tái)接口時(shí)驗(yàn)證AppID、AppSecret從而獲得接口訪問(wèn)憑證access_token。

        因此,開(kāi)發(fā)公眾號(hào)需在微信上進(jìn)行接口配置,填寫(xiě)使用的服務(wù)器地址URL、Token及EncodingAESKey,其中Token由開(kāi)發(fā)者任意填寫(xiě),用作生成簽名,EncodingAESKey可手動(dòng)填寫(xiě)或隨機(jī)生成,用作消息體加解密的密鑰。

        下面以一個(gè)提供周邊搜索的微信公眾號(hào)為例闡述開(kāi)放平臺(tái)的集成調(diào)用,該公眾號(hào)支持用戶發(fā)送位置信息查詢周邊興趣信息。其解決思路為:用戶上線時(shí)自動(dòng)采集其位置坐標(biāo),公眾服務(wù)器收到位置消息后,將用戶ID、位置信息存入公眾號(hào)的用戶服務(wù)記錄,當(dāng)用戶發(fā)送位置查詢要求時(shí),根據(jù)位置記錄調(diào)用第三方地圖的查詢服務(wù)返回要求的興趣信息。

        在此選擇百度地圖位置查詢服務(wù),為便于集成,還采用了百度的一系列開(kāi)放服務(wù),數(shù)據(jù)存儲(chǔ)使用百度BAE的MySQL,Web服務(wù)器使用BAE的Tomecat 7.0,以War包形式部署作為公眾號(hào)服務(wù)器,開(kāi)發(fā)語(yǔ)言使用Java。

        3 消息通信的實(shí)現(xiàn)

        3.1 消息通信

        構(gòu)建基于開(kāi)放平臺(tái)的公眾號(hào)工作包括:微信終端功能訂制、公眾號(hào)應(yīng)用數(shù)據(jù)存儲(chǔ)、第三方平臺(tái)與微信開(kāi)放平臺(tái)間的消息通信處理,其核心是消息通信。用戶終端與服務(wù)器的交互消息包括:請(qǐng)求消息、事件和響應(yīng)消息。其中請(qǐng)求消息是用戶發(fā)送給公眾號(hào)的消息,包括文字、語(yǔ)音、圖片、地理位置、鏈接和視頻;事件消息是因用戶對(duì)公眾賬號(hào)操作引發(fā)的公眾號(hào)發(fā)送給微信服務(wù)器消息,包括關(guān)注、取消關(guān)注、同意使用位置信息并進(jìn)入公眾賬號(hào)、點(diǎn)擊自定義菜單;響應(yīng)消息是指公眾賬號(hào)回復(fù)用戶的消息,消息內(nèi)容包括文本、圖片、語(yǔ)音、視頻、音樂(lè)及圖文。

        微信終端、微信服務(wù)器與第三方服務(wù)器間的消息通信過(guò)程采用HTTP協(xié)議,消息封裝格式為XML,其通信過(guò)程過(guò)程如下:

        (1)用戶通過(guò)微信終端向公眾號(hào)發(fā)送請(qǐng)求或事件消息,消息被送達(dá)公眾號(hào)服務(wù)器。

        (2)公眾號(hào)服務(wù)器將收到的消息用XML封裝,根據(jù)接口配置指定的URL,通過(guò)HTTP POST方式將消息轉(zhuǎn)發(fā)給第三方服務(wù)器。

        (3)第三方服務(wù)器對(duì)收到的消息進(jìn)行解析,將關(guān)鍵字、關(guān)鍵值與預(yù)置規(guī)則比對(duì)調(diào)用API,并將處理結(jié)果封裝為響應(yīng)消息回送。

        (4)微信服務(wù)器收到響應(yīng)消息后,將處理結(jié)果轉(zhuǎn)發(fā)至用戶微信端的公眾號(hào)。

        3.2 消息處理

        根據(jù)上述消息通信過(guò)程,公眾號(hào)的消息處理模塊應(yīng)支持多種消息的請(qǐng)求與響應(yīng),通過(guò)微信后臺(tái)應(yīng)用接口與用戶通信,負(fù)責(zé)將微信服務(wù)器收到的用戶請(qǐng)求轉(zhuǎn)發(fā)至第三方開(kāi)放平臺(tái),并將處理結(jié)果進(jìn)行解析封裝,返回給微信終端。

        使用XML對(duì)各類消息進(jìn)行定義,請(qǐng)求消息的XML定義如下:

        <![CDATA[toUser]] >

        <![CDATA[fromUser]] >

        1346781860

        <![CDATA[MsgType]] >

        不同類型數(shù)據(jù)格式

        1234567890123456

        ToUserName、FromUserName、CreateTime分別是接收者、發(fā)送者、創(chuàng)建時(shí)間。MsgType是消息內(nèi)容的類型,其值CDATA包括text、image、voice、video、location及l(fā)ink等。響應(yīng)消息定義與之類似,但不需要MsgId,事件的XML定義則是用代替了,Event的值CDATA包括:CLICK、VIEW、subscribe、unsubscribe和LOCATION等。

        使用標(biāo)準(zhǔn)的XML數(shù)據(jù)處理方法,在消息發(fā)送、接收兩端對(duì)消息進(jìn)行封裝和解析,可以實(shí)現(xiàn)有效的內(nèi)容交互。用戶端向公眾賬號(hào)發(fā)送請(qǐng)求消息、或做出操作時(shí),微信服務(wù)器會(huì)將消息或事件用XML格式通過(guò)doPOST發(fā)送到公眾賬號(hào)的入口URL,request中封裝了請(qǐng)求相關(guān)的所有內(nèi)容。公眾號(hào)服務(wù)器同樣適用XML封裝返回處理及響應(yīng)結(jié)果。

        對(duì)request消息解析使用Java提供的XML API dom4j,在消息接收端,首先使用request對(duì)象的getInputStream()方法獲得輸入流句柄,再使用dom4j的元素遍歷方法解析XML請(qǐng)求消息,基本步驟如下:

        public static Map parseXml(HttpServletRequest request) {

        Map map = new HashMap(); InputStream inputStream = request.getInputStream();//從request取得輸入流

        SAXReader reader = new SAXReader();//讀取輸入流

        Document document = reader.read(inputStream);

        Element root = document.getRootElement();//獲取xml根元素

        List elementList = root.elements();

        for (Element e : elementList)//遍歷所有子節(jié)點(diǎn)

        map.put(e.getName(), e.getText());

        inputStream.close();//釋放資源

        inputStream = null;

        return map;//返回結(jié)果}

        request消息經(jīng)parseXml()方法解析后,結(jié)果存放在HashMap中,只要使用關(guān)鍵字MsgType便能從HashMap判斷是消息或事件,進(jìn)而查詢其對(duì)應(yīng)類型及內(nèi)容,并采取相應(yīng)處理。

        響應(yīng)消息的封裝需要將java對(duì)象轉(zhuǎn)換為XML,使用Xstream開(kāi)源框架可以方便實(shí)現(xiàn)Java對(duì)象到XML的轉(zhuǎn)換。微信服務(wù)器的XML格式帶有CDATA塊,Xstream框架本身并不支持CDATA塊的生成,所以使用匿名內(nèi)部類實(shí)現(xiàn)Xstream擴(kuò)展,實(shí)例如下:

        private static XStream xstream = new XStream(new XppDriver( ) {

        public HierarchicalStreamWriter createWriter(Writer out) {

        return new PrettyPrintWriter(out) {

        boolean cdata = true;

        @SuppressWarnings("unchecked")

        protected void writeText(QuickWriter writer, String text) {

        if (cdata) {

        writer.write("<![CDATA[");

        writer.write(text);

        writer.write("]] >");}

        else writer.write(text); }

        };}});

        將第三方服務(wù)器處理的響應(yīng)消息轉(zhuǎn)換為微信服務(wù)器所支持的XML格式需要對(duì)不同類型內(nèi)容分別定義轉(zhuǎn)換函數(shù)。以下是圖文消息轉(zhuǎn)化的方法,其他類型對(duì)象采取類似處理即可,在此不贅述。

        public static String newsMessageToXml(NewsMessage newsMessage) {

        xstream.alias("xml", newsMessage.getClass());

        xstream.alias("item", new Article().getClass());

        return xstream.toXML(newsMessage);}

        4 開(kāi)放平臺(tái)的集成調(diào)用

        由于百度在GCJ-2坐標(biāo)系的基礎(chǔ)上增加了BD-09二次加密措施,直接使用用戶端采集的GCJ-2坐標(biāo)信息進(jìn)行查詢誤差較大,必須對(duì)用戶位置信息進(jìn)行百度坐標(biāo)轉(zhuǎn)換糾偏。公眾號(hào)在采集用戶位置信息時(shí),調(diào)用百度坐標(biāo)轉(zhuǎn)換API將用戶位置坐標(biāo)轉(zhuǎn)換為百度地圖坐標(biāo),然后將“用戶OpenID、轉(zhuǎn)換前坐標(biāo),轉(zhuǎn)換后坐標(biāo)”存入數(shù)據(jù)庫(kù)。用戶發(fā)送“附近+關(guān)鍵字”查詢時(shí),公眾號(hào)的實(shí)現(xiàn)過(guò)程為:

        (1)調(diào)用BEA的MySQL查詢API,根據(jù)“OpenID”查詢用戶對(duì)應(yīng)的百度地圖位置;

        (2)根據(jù)用戶位置信息調(diào)用百度地圖Place API對(duì)用戶位置周邊圓形區(qū)域進(jìn)行查詢,解析查詢返回結(jié)果;

        (3)調(diào)用百度地圖的JavaScript API處理導(dǎo)航頁(yè)面,將結(jié)果封裝成圖文信息發(fā)回客戶端

        (4)客戶端公眾號(hào)收到圖文信息后在地圖頁(yè)面打開(kāi)顯示結(jié)果。

        5 結(jié) 語(yǔ)

        本文提出了利用互聯(lián)網(wǎng)開(kāi)放平臺(tái)快速構(gòu)建微信公眾號(hào)的系統(tǒng)解決方案,并以提供“周邊搜索”的公眾號(hào)為例闡述如何實(shí)現(xiàn)微信開(kāi)放平臺(tái)與第三方平臺(tái)的消息通信及開(kāi)放API調(diào)用。該方案為移動(dòng)社交網(wǎng)絡(luò)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”生態(tài)下的多方協(xié)作、利益共享提供了一個(gè)高效率、低成本的解決思路。

        主要參考文獻(xiàn)

        [1]Xiang Y, Chang D, Chen B. A Smart University Campus Information Dissemination Framework Based on Wechat Platform[M]// R Zhang,et al (Eds).LISS 2013,Springer,Berlin Heidelberg, 2015: 927-932.

        [2]Zhao J, Huang X. The Application of WeChat to the University Laboratory Management Information System[C]//Proceedings of the 4th International Conference on Computer Engineering and Networks,Berlin:Springer International Publishing, 2015: 907-916.

        猜你喜歡
        開(kāi)放平臺(tái)
        基于百度地圖開(kāi)放平臺(tái)的導(dǎo)航電子地圖課程實(shí)踐教學(xué)研究
        基于在線開(kāi)放平臺(tái)的混合式課堂教學(xué)模式構(gòu)建與實(shí)踐
        騰訊安全應(yīng)急響應(yīng)開(kāi)放平臺(tái)正式上線
        基于AliGenie語(yǔ)音開(kāi)放平臺(tái)的傳統(tǒng)家居智聯(lián)網(wǎng)解決方案
        電子制作(2018年17期)2018-09-28 01:56:46
        搭建開(kāi)放平臺(tái) 收獲真情實(shí)感——談《品德與生活》教學(xué)中開(kāi)放式教學(xué)的實(shí)施
        儀表技能實(shí)訓(xùn)仿真教學(xué)系統(tǒng)的開(kāi)發(fā)
        中職會(huì)計(jì)教學(xué)模式的轉(zhuǎn)變分析
        成才之路(2016年5期)2016-03-26 12:21:08
        云計(jì)算開(kāi)放平臺(tái)的知識(shí)產(chǎn)權(quán)問(wèn)題研究
        基于網(wǎng)絡(luò)開(kāi)放平臺(tái)提升高校學(xué)生生活事務(wù)管理有效性:上海高校“易班”平臺(tái)實(shí)踐應(yīng)用的思考
        互聯(lián)網(wǎng)再掀淘金熱創(chuàng)業(yè)機(jī)會(huì)轉(zhuǎn)向開(kāi)放平臺(tái)
        精品久久久久久久中文字幕| 成人黄色网址| 国产精品久久毛片av大全日韩| 精品无码AV无码免费专区| 亚洲av无码成人黄网站在线观看 | 变态另类人妖一区二区三区| 精品国产乱码久久久久久婷婷| 四虎国产精品永久在线国在线| 亚洲av综合色区无码一二三区| 欧美日韩在线观看免费| 日本少妇按摩高潮玩弄| 亚洲香蕉av一区二区蜜桃| 中文字幕成人精品久久不卡91| 日韩精品第一区二区三区 | 成人国产精品一区二区网站| yw193.can尤物国产在线网页| 久久综合久中文字幕青草| 日本一区二区三区熟女俱乐部| 丰满人妻熟妇乱又仑精品| 精品亚洲成a人片在线观看| 国产91成人精品亚洲精品| 亚洲va成无码人在线观看| 国产91在线精品观看| 亚洲一区二区在线观看免费视频 | 亚洲精品美女久久久久久久| 亚洲av午夜福利一区二区国产| 亚洲黄色一级在线观看| 中文字幕日韩欧美一区二区三区 | 国产亚洲美女精品久久久2020| 日本一区二区三区不卡在线| 亚洲国产精品综合久久网络| 无码人妻av一二区二区三区| 亚洲欧美日韩一区在线观看| 久久亚洲国产精品五月天| 91麻豆精品久久久影院| 日韩女同精品av在线观看| 一性一交一口添一摸视频| 伊人婷婷在线| 国产日韩午夜视频在线观看| 黑丝美腿国产在线观看| 日本丰满少妇裸体自慰|