微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)(方法、技巧與案例)上篇_第1頁(yè)
微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)(方法、技巧與案例)上篇_第2頁(yè)
微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)(方法、技巧與案例)上篇_第3頁(yè)
微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)(方法、技巧與案例)上篇_第4頁(yè)
微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)(方法、技巧與案例)上篇_第5頁(yè)
已閱讀5頁(yè),還剩156頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)方法、技巧與案例(上篇)目錄\h第1章公眾平臺(tái)基礎(chǔ)知識(shí)\h1.1公眾平臺(tái)簡(jiǎn)介\h1.1.1平臺(tái)定位\h1.1.2發(fā)展歷程\h1.2注冊(cè)公眾賬號(hào)\h1.2.1公眾賬號(hào)的分類(lèi)\h1.2.2注冊(cè)賬號(hào)所需資料\h1.2.3公眾賬號(hào)的注冊(cè)流程\h1.3公眾平臺(tái)的使用\h1.3.1功能\h1.3.2管理\h1.3.3服務(wù)\h1.3.4統(tǒng)計(jì)\h1.3.5設(shè)置\h1.4公眾賬號(hào)認(rèn)證\h1.4.1認(rèn)證條件\h1.4.2微信認(rèn)證流程\h1.4.3微博認(rèn)證流程\h1.5小結(jié)\h第2章編輯模式的使用\h2.1編輯模式的應(yīng)用場(chǎng)景\h2.2自動(dòng)回復(fù)\h2.2.1被添加自動(dòng)回復(fù)\h2.2.2消息自動(dòng)回復(fù)\h2.2.3關(guān)鍵詞自動(dòng)回復(fù)\h2.2.4自動(dòng)回復(fù)優(yōu)先規(guī)則\h2.3案例:簡(jiǎn)易號(hào)碼簿\h2.3.1案例功能描述\h2.3.2數(shù)據(jù)準(zhǔn)備\h2.3.3設(shè)計(jì)關(guān)注提示語(yǔ)\h2.3.4設(shè)計(jì)關(guān)鍵詞規(guī)則\h2.3.5設(shè)置默認(rèn)回復(fù)\h2.3.6測(cè)試體驗(yàn)\h2.4自定義菜單\h2.4.1編輯菜單\h2.4.2預(yù)覽和發(fā)布菜單\h2.5小結(jié)\h第3章開(kāi)發(fā)模式的啟用\h3.1開(kāi)發(fā)模式的基礎(chǔ)知識(shí)\h3.1.1啟用開(kāi)發(fā)模式的必備條件\h3.1.2應(yīng)用引擎簡(jiǎn)介\h3.1.3開(kāi)發(fā)工具介紹\h3.2開(kāi)發(fā)請(qǐng)求校驗(yàn)程序\h3.2.1開(kāi)發(fā)者文檔介紹\h3.2.2明確請(qǐng)求校驗(yàn)流程\h3.2.3請(qǐng)求校驗(yàn)流程分析\h3.2.4請(qǐng)求校驗(yàn)程序的實(shí)現(xiàn)\h3.2.5本地測(cè)試\h3.2.6導(dǎo)出WAR包\h3.3BAE的使用\h3.3.1注冊(cè)賬號(hào)\h3.3.2創(chuàng)建應(yīng)用\h3.3.3托管設(shè)置\h3.3.4部署應(yīng)用\h3.3.5獲取訪問(wèn)地址\h3.4啟用開(kāi)發(fā)模式的步驟\h3.5小結(jié)\h第4章消息的接收與響應(yīng)\h4.1消息交互基礎(chǔ)知識(shí)\h4.1.1消息交互流程\h4.1.2消息的分類(lèi)\h4.2消息結(jié)構(gòu)的封裝\h4.2.1封裝請(qǐng)求消息\h4.2.2封裝事件\h4.2.3封裝響應(yīng)消息\h4.3消息的處理\h4.3.1Dom4j的使用\h4.3.2XStream的使用\h4.3.3解析請(qǐng)求消息\h4.3.4響應(yīng)消息對(duì)象轉(zhuǎn)XML\h4.4案例:消息的接收與響應(yīng)\h4.4.1開(kāi)發(fā)準(zhǔn)備工作\h4.4.2消息封裝類(lèi)\h4.4.3封裝消息處理工具\(yùn)h4.4.4使用CoreServlet類(lèi)完成消息的接收與響應(yīng)\h4.4.5使用CoreService類(lèi)完成消息的處理\h4.4.6部署應(yīng)用及測(cè)試體驗(yàn)\h4.5小結(jié)\h第5章自定義菜單的使用\h5.1發(fā)送HTTPS請(qǐng)求\h5.1.1兩種解決方法\h5.1.2自定義信任管理器\h5.2接口訪問(wèn)憑證\h5.2.1獲取憑證接口介紹\h5.2.2獲取憑證的方式\h5.3自定義菜單接口\h5.3.1菜單按鈕的分類(lèi)\h5.3.2菜單結(jié)構(gòu)說(shuō)明\h5.3.3封裝菜單結(jié)構(gòu)\h5.3.4案例:創(chuàng)建菜單\h5.3.5菜單的查詢(xún)與刪除\h5.4響應(yīng)菜單點(diǎn)擊事件\h5.5接口調(diào)用頻率限制\h5.6案例:網(wǎng)址導(dǎo)航\h5.6.1案例功能描述\h5.6.2案例開(kāi)發(fā)準(zhǔn)備\h5.6.3封裝通用工具類(lèi)\h5.6.4封裝菜單工具類(lèi)\h5.6.5創(chuàng)建自定義菜單\h5.6.6實(shí)現(xiàn)業(yè)務(wù)邏輯\h5.6.7部署應(yīng)用及測(cè)試體驗(yàn)\h5.7小結(jié)第1章公眾平臺(tái)基礎(chǔ)知識(shí)微信,是時(shí)下最受關(guān)注的移動(dòng)互聯(lián)網(wǎng)產(chǎn)品。經(jīng)過(guò)兩年多的發(fā)展,微信的注冊(cè)用戶(hù)數(shù)已超過(guò)6億,成為移動(dòng)互聯(lián)網(wǎng)最重要的入口之一。在這樣一個(gè)超級(jí)平臺(tái)上創(chuàng)建自己的應(yīng)用、宣傳自己的品牌,是多少組織與個(gè)人都?jí)裘乱郧蟮氖虑?。微信公眾平臺(tái)(以下簡(jiǎn)稱(chēng)“公眾平臺(tái)”),作為微信最為重要的組成部分,以“再小的個(gè)體也有自己的品牌”為宣傳口號(hào),吸引著眾多企業(yè)和個(gè)人開(kāi)發(fā)者加入到微信開(kāi)發(fā)陣營(yíng),爭(zhēng)先在公眾平臺(tái)上創(chuàng)建并推廣自己的品牌。截至2013年11月,公眾平臺(tái)就已經(jīng)有200多萬(wàn)的注冊(cè)賬號(hào),并且每天保持著8000個(gè)左右的增長(zhǎng)速度。本書(shū)的重點(diǎn)是幫助讀者了解公眾平臺(tái),熟悉公眾賬號(hào)的注冊(cè)與使用,掌握公眾平臺(tái)開(kāi)發(fā)的相關(guān)知識(shí)與技術(shù)。本章為讀者介紹公眾平臺(tái)的基礎(chǔ)知識(shí),這對(duì)學(xué)習(xí)后面的章節(jié)有著非常重要的幫助。1.1公眾平臺(tái)簡(jiǎn)介公眾平臺(tái)是騰訊公司在微信的基礎(chǔ)上新增的功能模塊,通過(guò)這一平臺(tái),個(gè)人和企業(yè)都可以打造一個(gè)微信公眾賬號(hào)(以下簡(jiǎn)稱(chēng)公眾賬號(hào)或公眾號(hào)),并實(shí)現(xiàn)與特定群體的文字、圖片及語(yǔ)音的全方位溝通、互動(dòng)。公眾平臺(tái)主要面向名人、政府、媒體、企業(yè)等,在這里可以通過(guò)微信渠道將品牌推廣給上億的微信用戶(hù),減少宣傳成本,提高品牌知名度,打造更具影響力的品牌形象。1.1.1平臺(tái)定位在公眾平臺(tái)推出后相當(dāng)長(zhǎng)的一段時(shí)間里,都沒(méi)有一個(gè)人能夠給出它的清晰定位。對(duì)于“公眾平臺(tái)是什么,能夠做什么”,業(yè)界一直是眾說(shuō)紛紜。在公眾平臺(tái)上線(xiàn)初期,就有大量媒體、公司涌入,迅速將這里開(kāi)辟成為除官方微博外的另一大互聯(lián)網(wǎng)營(yíng)銷(xiāo)戰(zhàn)場(chǎng)。當(dāng)時(shí),許多公眾賬號(hào)都沒(méi)有提供實(shí)質(zhì)性的內(nèi)容,只是每天定時(shí)推送消息,不管用戶(hù)是否喜歡,就更不要提與用戶(hù)進(jìn)行互動(dòng)了;更有甚者,他們很看好微信營(yíng)銷(xiāo),投入大量人力、物力發(fā)展公眾賬號(hào),待用戶(hù)規(guī)模達(dá)到一定數(shù)量級(jí)后,開(kāi)始發(fā)廣告或淘寶鏈接賺取收入,這些顯然都不是騰訊公司所期望看到的。直到2013年6月5日,在北京騰訊匯舉行的“問(wèn)診公眾平臺(tái)”專(zhuān)場(chǎng)活動(dòng)上,騰訊官方才首次公布了對(duì)公眾平臺(tái)的定位:信息流轉(zhuǎn)、連接用戶(hù)與服務(wù)、實(shí)現(xiàn)溝通互動(dòng),并且還做了一個(gè)更為明確的表態(tài):微信不是營(yíng)銷(xiāo)平臺(tái)。筆者認(rèn)為,我們應(yīng)當(dāng)將騰訊官方對(duì)公眾平臺(tái)的定位作為建設(shè)公眾賬號(hào)的指導(dǎo)思想,重點(diǎn)做好用戶(hù)服務(wù),努力提高服務(wù)質(zhì)量,提升客戶(hù)滿(mǎn)意度。1.1.2發(fā)展歷程2012年8月17日,公眾平臺(tái)正式向普通用戶(hù)開(kāi)放。2012年11月29日,公眾平臺(tái)群發(fā)系統(tǒng)全面升級(jí),新增圖文消息編輯功能,并對(duì)發(fā)送的內(nèi)容進(jìn)行敏感詞和安全性檢測(cè)。2013年2月6日,公眾平臺(tái)做了如下調(diào)整。1)增加高級(jí)功能選項(xiàng),用戶(hù)可以在編輯模式和開(kāi)發(fā)模式中選擇一個(gè)使用。2)設(shè)置選項(xiàng)中只保留賬號(hào)信息和公眾號(hào)手機(jī)助手2項(xiàng),被添加消息自動(dòng)回復(fù)和自定義規(guī)則回復(fù)2個(gè)重要功能選項(xiàng)刪除。3)公眾平臺(tái)全面開(kāi)啟實(shí)名認(rèn)證。2013年3月19日,公眾平臺(tái)開(kāi)放“自定義菜單”API內(nèi)測(cè)申請(qǐng)(僅限企業(yè)和機(jī)構(gòu)申請(qǐng))。2013年8月5日,伴隨著微信5.0的發(fā)布,公眾平臺(tái)也進(jìn)行了大幅調(diào)整,主要包括以下幾個(gè)方面。1)公眾賬號(hào)被劃分為訂閱號(hào)和服務(wù)號(hào),服務(wù)號(hào)可申請(qǐng)自定義菜單。2)運(yùn)營(yíng)主體為組織,可選擇成為服務(wù)號(hào)或訂閱號(hào);運(yùn)營(yíng)主體為個(gè)人,只能申請(qǐng)訂閱號(hào)。3)使用QQ登錄的公眾賬號(hào),可以升級(jí)為郵箱登錄;使用郵箱登錄的公眾賬號(hào),可以修改登錄郵箱。4)編輯圖文消息可選填作者。5)群發(fā)消息可以同步到騰訊微博。2013年8月29日,公眾平臺(tái)新增數(shù)據(jù)統(tǒng)計(jì)功能,包括用戶(hù)管理分析、群發(fā)圖文消息分析、用戶(hù)消息分析和接口調(diào)用分析,數(shù)據(jù)從2013年7月1日開(kāi)始統(tǒng)計(jì)。2013年10月29日,公眾平臺(tái)全面改版,主要更新內(nèi)容如下。1)開(kāi)放全新的認(rèn)證體系,服務(wù)號(hào)可申請(qǐng)微信認(rèn)證,審核通過(guò)后,即可獲得微信認(rèn)證標(biāo)識(shí)并同時(shí)擁有高級(jí)接口的使用權(quán)限。2)開(kāi)放高級(jí)接口。服務(wù)號(hào)通過(guò)微信認(rèn)證后,可以獲得的高級(jí)接口包括語(yǔ)音識(shí)別、客服接口、OAuth2.0網(wǎng)頁(yè)授權(quán)、生成帶參數(shù)二維碼、獲取用戶(hù)地理位置、獲取用戶(hù)基本信息、獲取關(guān)注列表和用戶(hù)分組接口。3)新增開(kāi)發(fā)者問(wèn)答系統(tǒng),為開(kāi)發(fā)者提供一個(gè)互動(dòng)交流平臺(tái)。4)公眾平臺(tái)界面進(jìn)行了全新改版。公眾平臺(tái)導(dǎo)航欄由橫向改為豎向,界面風(fēng)格及各類(lèi)細(xì)節(jié)都做了調(diào)整,使用起來(lái)更加方便。2013年12月2日,公眾平臺(tái)新增“測(cè)試賬號(hào)”功能,開(kāi)發(fā)者可以使用手機(jī)號(hào)申請(qǐng)公眾平臺(tái)接口測(cè)試賬號(hào),直接體驗(yàn)和測(cè)試公眾平臺(tái)開(kāi)放的所有接口。2013年12月24日,公眾平臺(tái)針對(duì)訂閱號(hào)做了重要更新。政府、傳統(tǒng)媒體、明星等非企業(yè)性質(zhì)的訂閱號(hào)可以申請(qǐng)微信認(rèn)證,通過(guò)微信認(rèn)證的訂閱號(hào)可獲得自定義菜單接口權(quán)限。1.2注冊(cè)公眾賬號(hào)經(jīng)過(guò)前面的介紹,相信讀者對(duì)公眾平臺(tái)已經(jīng)有了大致的認(rèn)識(shí)。下面為讀者介紹公眾賬號(hào)的注冊(cè)流程。隨著公眾平臺(tái)的發(fā)展,公眾賬號(hào)的注冊(cè)流程越來(lái)越復(fù)雜,公眾賬號(hào)的審核也變得更加嚴(yán)格。因此,在動(dòng)手注冊(cè)賬號(hào)之前,有必要先了解賬號(hào)注冊(cè)的相關(guān)知識(shí)及注意事項(xiàng)。1.2.1公眾賬號(hào)的分類(lèi)公眾賬號(hào)分為服務(wù)號(hào)和訂閱號(hào)兩種類(lèi)型,它們?cè)谟猛竞凸δ苌嫌兄艽蟮牟顒e。服務(wù)號(hào)為企業(yè)和組織提供更強(qiáng)大的業(yè)務(wù)服務(wù)與用戶(hù)管理能力,幫助企業(yè)快速實(shí)現(xiàn)全新的公眾號(hào)服務(wù)平臺(tái);而媒體號(hào)為媒體和個(gè)人提供一種新的信息傳播方式,構(gòu)建與讀者之間更好的溝通與管理模式。簡(jiǎn)而言之,服務(wù)號(hào)主要是面向企業(yè)和組織的,旨在為用戶(hù)提供服務(wù);訂閱號(hào)主要是面向媒體和個(gè)人的,旨在為用戶(hù)提供信息和資訊。服務(wù)號(hào)每月只能群發(fā)一條消息,默認(rèn)開(kāi)通自定義菜單,可以申請(qǐng)微信認(rèn)證,并且通過(guò)微信認(rèn)證后還能夠獲得更多接口權(quán)限;而訂閱號(hào)每天能群發(fā)一條消息,并且只有政府、媒體、明星等非企業(yè)類(lèi)型的訂閱號(hào)才能申請(qǐng)微信認(rèn)證,從而獲得自定義菜單。可以看出,服務(wù)號(hào)的優(yōu)勢(shì)在于能夠使用更多的接口權(quán)限,而訂閱號(hào)的優(yōu)勢(shì)在于每天都能群發(fā)一條消息。下面筆者對(duì)服務(wù)號(hào)和訂閱號(hào)的功能進(jìn)行更為詳細(xì)的說(shuō)明。服務(wù)號(hào)的功能如下:●1個(gè)月(30天)內(nèi)僅可以群發(fā)一條消息;●發(fā)給訂閱用戶(hù)(粉絲)的消息,會(huì)顯示在對(duì)方的聊天列表中;●在發(fā)送消息給用戶(hù)時(shí),用戶(hù)將收到即時(shí)的消息提醒;●服務(wù)號(hào)會(huì)在訂閱用戶(hù)(粉絲)的通訊錄中;●服務(wù)號(hào)默認(rèn)開(kāi)通自定義菜單;●服務(wù)號(hào)可以申請(qǐng)微信認(rèn)證,認(rèn)證通過(guò)后能夠獲得高級(jí)接口權(quán)限。訂閱號(hào)的功能如下:●訂閱號(hào)每天(24小時(shí)內(nèi))可以群發(fā)一條消息;●發(fā)給訂閱用戶(hù)(粉絲)的消息,將會(huì)顯示在對(duì)方的訂閱號(hào)文件夾中;●在發(fā)送消息給訂閱用戶(hù)(粉絲)時(shí),訂閱用戶(hù)不會(huì)收到即時(shí)消息提醒;●在訂閱用戶(hù)(粉絲)的通訊錄中,訂閱號(hào)將被放入訂閱號(hào)文件夾中;●政府、媒體、明星等非企業(yè)類(lèi)型的訂閱號(hào)可申請(qǐng)微信認(rèn)證,認(rèn)證通過(guò)后能夠獲得自定義菜單接口權(quán)限。說(shuō)明2013年8月5日微信5.0發(fā)布,公眾賬號(hào)被劃分為服務(wù)號(hào)和訂閱號(hào),在此之前申請(qǐng)的所有賬號(hào),都被默認(rèn)為訂閱號(hào),并且有一次轉(zhuǎn)成服務(wù)號(hào)的機(jī)會(huì),而在此之后申請(qǐng)的賬號(hào),不能轉(zhuǎn)換類(lèi)型。1.2.2注冊(cè)賬號(hào)所需資料除了要知道哪種類(lèi)型的賬號(hào)更適合我們之外,還需要知道注冊(cè)公眾賬號(hào)需要哪些資料,這樣可以提前準(zhǔn)備好,否則,注冊(cè)賬號(hào)時(shí)再去找需要的資料往往會(huì)忙中出錯(cuò)。在注冊(cè)公眾賬號(hào)時(shí),不同的運(yùn)營(yíng)主體所需要填寫(xiě)的資料不相同。目前,公眾賬號(hào)的運(yùn)營(yíng)主體分為組織和個(gè)人,而組織又包括政府、媒體、企業(yè)和其他組織。下面就為讀者詳細(xì)介紹各運(yùn)營(yíng)主體在申請(qǐng)公眾賬號(hào)時(shí)需要填寫(xiě)的資料。1.政府機(jī)構(gòu)政府機(jī)構(gòu)包括國(guó)內(nèi)外的各級(jí)各類(lèi)政府機(jī)構(gòu)、事業(yè)單位、具有行政職能的社會(huì)組織等,目前主要覆蓋公安機(jī)構(gòu)、黨團(tuán)機(jī)構(gòu)、司法機(jī)構(gòu)、交通機(jī)構(gòu)、旅游機(jī)構(gòu)、工商稅務(wù)機(jī)構(gòu)、市政機(jī)構(gòu)、涉外機(jī)構(gòu)等。以政府名義注冊(cè)公眾賬號(hào)所需資料如表1-1所示。表1-1政府注冊(cè)公眾賬號(hào)所需資料說(shuō)明同一個(gè)身份證號(hào)與手機(jī)號(hào)碼都只能注冊(cè)2個(gè)公眾賬號(hào)。2.媒體機(jī)構(gòu)媒體機(jī)構(gòu)包括報(bào)紙、雜志、電視、電臺(tái)、通訊社等。以媒體名義注冊(cè)公眾賬號(hào)所需資料如表1-2所示。表1-2媒體注冊(cè)公眾賬號(hào)所需資料3.企業(yè)機(jī)構(gòu)企業(yè)機(jī)構(gòu)包括企業(yè)、分支機(jī)構(gòu)、企業(yè)相關(guān)品牌、產(chǎn)品與服務(wù)、招聘和客服等。以企業(yè)名義注冊(cè)公眾賬號(hào)所需資料如表1-3所示。表1-3企業(yè)注冊(cè)公眾賬號(hào)所需資料4.其他組織其他組織包括除政府、媒體、企業(yè)以外的所有機(jī)構(gòu)。以其他組織名義注冊(cè)公眾賬號(hào)所需資料如表1-4所示。表1-4其他組織注冊(cè)公眾賬號(hào)所需資料5.個(gè)人個(gè)人指的是不屬于政府、媒體、企業(yè)和其他組織的個(gè)體。以個(gè)人名義注冊(cè)公眾賬號(hào)所需資料如表1-5所示。表1-5個(gè)人注冊(cè)公眾賬號(hào)所需資料1.2.3公眾賬號(hào)的注冊(cè)流程下面我們一起來(lái)體驗(yàn)公眾賬號(hào)的注冊(cè)流程。首先,使用瀏覽器訪問(wèn)公眾平臺(tái)首頁(yè),鏈接地址為/,點(diǎn)擊頁(yè)面右上方的“立即注冊(cè)”,進(jìn)入到公眾賬號(hào)注冊(cè)頁(yè)面,可以看到,公眾賬號(hào)的注冊(cè)一共分為5步,包括填寫(xiě)基本信息、郵箱激活、用戶(hù)信息登記、選擇賬號(hào)類(lèi)型和填寫(xiě)公眾賬號(hào)信息,如圖1-1所示。圖1-1公眾賬號(hào)的注冊(cè)步驟1)基本信息中需要填寫(xiě)的是郵箱、密碼和驗(yàn)證碼,如圖1-2所示,這里的郵箱必須是真實(shí)在用的。圖1-2基本信息注意一個(gè)郵箱只能注冊(cè)一個(gè)公眾賬號(hào),建議讀者為公眾賬號(hào)專(zhuān)門(mén)注冊(cè)一個(gè)郵箱?;拘畔⑻顚?xiě)完成后,點(diǎn)擊頁(yè)面底部的“注冊(cè)”按鈕,微信團(tuán)隊(duì)會(huì)立即向我們填寫(xiě)的郵箱發(fā)送一封激活賬號(hào)的郵件。2)點(diǎn)擊如圖1-3所示界面中的“登錄郵箱”按鈕,登錄到注冊(cè)郵箱并查收標(biāo)題為“激活你的微信公眾平臺(tái)賬號(hào)”的郵件。如果沒(méi)有收到這封郵件,讀者可以根據(jù)圖1-3左下角的3條提示信息逐個(gè)核查。圖1-3郵箱激活郵件的內(nèi)容如圖1-4所示,點(diǎn)擊里面的激活賬號(hào)鏈接,如果鏈接沒(méi)有失效,就會(huì)自動(dòng)跳轉(zhuǎn)到信息登記頁(yè)面。圖1-4激活郵件的內(nèi)容3)在信息登記頁(yè)面,需要選擇運(yùn)營(yíng)主體和類(lèi)型,如圖1-5所示。不同類(lèi)型的運(yùn)營(yíng)主體,需要登記的信息不一樣,我們已經(jīng)在1.2.2節(jié)中詳細(xì)介紹過(guò),這里不再贅述。圖1-5選擇運(yùn)營(yíng)主體信息登記完成后,點(diǎn)擊頁(yè)面底部的“繼續(xù)”按鈕,將會(huì)來(lái)到步驟4“選擇類(lèi)型”。4)如果運(yùn)營(yíng)主體為組織,賬號(hào)類(lèi)型有服務(wù)號(hào)和訂閱號(hào)兩個(gè)選項(xiàng),如圖1-6所示;而如果運(yùn)營(yíng)主體為個(gè)人,賬號(hào)類(lèi)型就只能選擇訂閱號(hào),如圖1-7所示。圖1-6運(yùn)營(yíng)主體為組織的賬號(hào)類(lèi)型選擇界面(左)圖1-7運(yùn)營(yíng)主體為個(gè)人的賬號(hào)類(lèi)型選擇界面(右)說(shuō)明如果在這一步不確定應(yīng)該選服務(wù)號(hào)還是訂閱號(hào),建議仔細(xì)閱讀1.2.1節(jié),掌握服務(wù)號(hào)和訂閱號(hào)的區(qū)別,結(jié)合公眾賬號(hào)的實(shí)際用途就不難抉擇了。需要注意的是,公眾賬號(hào)類(lèi)型一旦選擇就不能變更,如果不小心選擇錯(cuò)誤,就只能重新注冊(cè),所以一定要謹(jǐn)慎。賬號(hào)類(lèi)型選擇完成后,點(diǎn)擊頁(yè)面底部的“繼續(xù)”按鈕,將會(huì)來(lái)到步驟5“公眾號(hào)信息”填寫(xiě)頁(yè)面。5)公眾號(hào)信息中需要填寫(xiě)的內(nèi)容如圖1-8所示。圖1-8公眾號(hào)信息其中,最重要的兩項(xiàng)是賬號(hào)名稱(chēng)和功能介紹,它們最終都會(huì)顯示在公眾賬號(hào)的詳細(xì)資料中。賬號(hào)名稱(chēng)一經(jīng)設(shè)置無(wú)法更改,功能介紹每個(gè)月只能申請(qǐng)修改一次。以上信息填寫(xiě)完并提交后,就進(jìn)入了賬號(hào)審核階段。微信團(tuán)隊(duì)會(huì)在7個(gè)工作日內(nèi)完成賬號(hào)的審核。在賬號(hào)通過(guò)審核之前,無(wú)法申請(qǐng)認(rèn)證,也無(wú)法使用公眾平臺(tái)的群發(fā)功能和高級(jí)功能。注意對(duì)于賬號(hào)名稱(chēng),有兩點(diǎn)需要注意的:①賬號(hào)名稱(chēng)允許重復(fù),所以不用擔(dān)心名稱(chēng)會(huì)被他人搶注。②公眾平臺(tái)對(duì)一些可能存在侵權(quán)的關(guān)鍵詞進(jìn)行了保護(hù),例如“微信”、“移動(dòng)”、“搜狐”等,如果賬號(hào)名稱(chēng)中包含這類(lèi)關(guān)鍵詞,提交時(shí)會(huì)提示“你注冊(cè)的公眾號(hào)名稱(chēng)存在侵權(quán)風(fēng)險(xiǎn),請(qǐng)先完成微博驗(yàn)證”,在遇到這種情況時(shí),要么避開(kāi)這些關(guān)鍵詞換個(gè)名稱(chēng)注冊(cè),要么就根據(jù)提示先完成微博驗(yàn)證再繼續(xù)注冊(cè)。1.3公眾平臺(tái)的使用公眾賬號(hào)通過(guò)審核后,就可以正式使用了。登錄到公眾平臺(tái),在首頁(yè)能夠看到公眾平臺(tái)Logo、公眾賬號(hào)信息、導(dǎo)航菜單等信息,如圖1-9所示。公眾平臺(tái)Logo帶有網(wǎng)頁(yè)超鏈接,鏈接地址為,當(dāng)我們需要從其他頁(yè)面回到首頁(yè)時(shí),可以通過(guò)點(diǎn)擊該Logo實(shí)現(xiàn)。在首頁(yè)的右上角顯示了公眾賬號(hào)信息,包括賬號(hào)名稱(chēng)、賬號(hào)類(lèi)型和頭像,點(diǎn)擊賬號(hào)名稱(chēng)或頭像會(huì)進(jìn)入到賬號(hào)信息頁(yè)面,能夠了解到賬號(hào)的更多信息。導(dǎo)航菜單位于首頁(yè)的左側(cè),這是公眾平臺(tái)所有功能模塊的入口,包含功能、管理、服務(wù)、統(tǒng)計(jì)和設(shè)置。當(dāng)公眾平臺(tái)升級(jí)時(shí),能夠在系統(tǒng)公告中看到相關(guān)說(shuō)明。在系統(tǒng)公告上方,還能夠看到公眾賬號(hào)的新消息、新增人數(shù)和總用戶(hù)數(shù),方便我們了解公眾賬號(hào)近期的使用情況。圖1-9公眾平臺(tái)首頁(yè)下面就為讀者詳細(xì)介紹導(dǎo)航菜單中每個(gè)模塊的功能及用法。1.3.1功能1.群發(fā)功能群發(fā)功能是公眾平臺(tái)最吸引人的功能之一,可以說(shuō)很多企業(yè)、政府、媒體最初都是因?yàn)楣娖脚_(tái)能夠群發(fā)消息,才考慮建設(shè)運(yùn)營(yíng)公眾賬號(hào)的,因?yàn)橄啾热喊l(fā)短信,公眾平臺(tái)的群發(fā)消息成本更低、內(nèi)容更豐富,更有利于品牌宣傳。群發(fā)功能是一把雙刃劍,如果使用不當(dāng),會(huì)讓用戶(hù)很反感,嚴(yán)重影響用戶(hù)體驗(yàn),從而導(dǎo)致大量的用戶(hù)取消關(guān)注。因此,微信團(tuán)隊(duì)對(duì)群發(fā)消息的限制也越來(lái)越嚴(yán)格。在公眾平臺(tái)發(fā)展初期,所有公眾賬號(hào)每天都能群發(fā)1條消息,甚至有些公眾賬號(hào)一天還能群發(fā)3條;可是現(xiàn)在只有訂閱號(hào)才能每天群發(fā)1條消息,而服務(wù)號(hào)只能每月群發(fā)1條消息。在群發(fā)消息時(shí),可以選擇群發(fā)對(duì)象、性別和群發(fā)地區(qū),如圖1-10所示,這樣更有利于精準(zhǔn)營(yíng)銷(xiāo),如果用戶(hù)經(jīng)常收到自己不關(guān)心的信息就很有可能會(huì)取消關(guān)注。例如,某商家通過(guò)公眾賬號(hào)宣傳化妝品優(yōu)惠活動(dòng)時(shí),就只需要將優(yōu)惠信息群發(fā)給所有女性用戶(hù)即可,因?yàn)榻^大多數(shù)男性對(duì)化妝品都不了解。在群發(fā)功能的“已發(fā)送”中,能夠看到公眾賬號(hào)的歷史群發(fā)消息,如圖1-11所示。圖1-10群發(fā)消息圖1-11歷史群發(fā)消息2.高級(jí)功能高級(jí)功能是公眾平臺(tái)最重要的模塊,該模塊在公眾賬號(hào)審核通過(guò)后才能看到。高級(jí)功能包含編輯模式和開(kāi)發(fā)模式,如圖1-12所示。在編輯模式下,運(yùn)營(yíng)者可以通過(guò)簡(jiǎn)單的界面編輯來(lái)設(shè)置自動(dòng)回復(fù)、自定義菜單等功能;在開(kāi)發(fā)模式下,開(kāi)發(fā)者可以通過(guò)公眾平臺(tái)提供的接口實(shí)現(xiàn)自動(dòng)回復(fù)、自定義菜單等功能。編輯模式主要針對(duì)沒(méi)有開(kāi)發(fā)能力的運(yùn)營(yíng)者,而開(kāi)發(fā)模式主要針對(duì)具備開(kāi)發(fā)能力的運(yùn)營(yíng)者。編輯模式比較簡(jiǎn)單,容易上手,實(shí)現(xiàn)速度快,但能夠?qū)崿F(xiàn)的功能非常有限;而開(kāi)發(fā)模式更加靈活,能為用戶(hù)提供個(gè)性化的服務(wù),建議有開(kāi)發(fā)能力的組織和個(gè)人都采用開(kāi)發(fā)模式。對(duì)于模式的選擇除了要考慮開(kāi)發(fā)能力外,還應(yīng)該考慮賬號(hào)的實(shí)際用途。例如,對(duì)于媒體類(lèi)、笑話(huà)類(lèi)賬號(hào),大都會(huì)選擇編輯模式;而對(duì)于需要驗(yàn)證用戶(hù)身份為用戶(hù)提供個(gè)性化服務(wù)的賬號(hào),都會(huì)選擇開(kāi)發(fā)模式。編輯模式和開(kāi)發(fā)模式是本書(shū)的重中之重,因此會(huì)在后續(xù)章節(jié)專(zhuān)門(mén)為讀者介紹它們的使用。圖1-12公眾平臺(tái)的高級(jí)功能3.商戶(hù)功能如果公眾賬號(hào)擁有微信支付權(quán)限,在功能模塊下可以看到商戶(hù)功能。商戶(hù)功能中包含了數(shù)據(jù)概覽、流量分析、訂單流水等信息,如圖1-13所示。圖1-13公眾平臺(tái)的商戶(hù)功能1.3.2管理1.消息管理在消息管理模塊,我們能夠?qū)τ脩?hù)發(fā)送的消息執(zhí)行查看、搜索、回復(fù)和收藏4種操作,但是不能夠?qū)⑵鋭h除,下面就為讀者詳細(xì)介紹這4種操作。(1)查看消息在消息管理中,能夠查看到用戶(hù)與公眾賬號(hào)交互的消息。也就是說(shuō),用戶(hù)向公眾賬號(hào)發(fā)送的消息以及公眾賬號(hào)給用戶(hù)回復(fù)的消息,都能在這里清楚地看到。但是,我們只能查看到最近5天的消息,如圖1-14所示,如果要永久存儲(chǔ)用戶(hù)與公眾賬號(hào)交互的消息,就只能采用開(kāi)發(fā)模式編寫(xiě)相應(yīng)的程序代碼將消息存儲(chǔ)在數(shù)據(jù)庫(kù)中。圖1-14查看消息(2)搜索消息在消息管理界面的右上角有一個(gè)消息搜索框,用于根據(jù)消息內(nèi)容進(jìn)行搜索。筆者輸入關(guān)鍵詞“北京”搜索用戶(hù)發(fā)送的消息,得到的結(jié)果如圖1-15所示。圖1-15搜索消息(3)回復(fù)消息當(dāng)看到用戶(hù)發(fā)送的消息時(shí),我們能夠直接在消息管理中進(jìn)行回復(fù)。如果24小時(shí)內(nèi)沒(méi)有與公眾賬戶(hù)互動(dòng),則不能向用戶(hù)回復(fù)消息?;貜?fù)消息最典型的使用場(chǎng)景:用戶(hù)通過(guò)公眾賬號(hào)提問(wèn),客服人員直接在公眾平臺(tái)回答用戶(hù)的問(wèn)題。在消息管理中,將光標(biāo)停留在某條消息上時(shí),右側(cè)會(huì)出現(xiàn)兩個(gè)按鈕“快捷回復(fù)”和“收藏消息”,點(diǎn)擊“快捷回復(fù)”就能夠向用戶(hù)回復(fù)消息,如圖1-16所示。圖1-16回答用戶(hù)的問(wèn)題說(shuō)明圖1-16中的快捷回復(fù)只支持回復(fù)文本消息,如果想回復(fù)其他類(lèi)型的消息,可以通過(guò)點(diǎn)擊用戶(hù)頭像,進(jìn)入到聊天窗口。在聊天窗口,能夠向用戶(hù)發(fā)送的消息類(lèi)型有文字、語(yǔ)音、圖片、視頻和圖文5種。(4)收藏消息上面提到過(guò),將光標(biāo)停留在某條消息上時(shí),右側(cè)會(huì)出現(xiàn)“收藏消息”按鈕,如圖1-17所示,點(diǎn)擊它就能將當(dāng)前消息收藏。消息收藏后,會(huì)永久存儲(chǔ)在微信服務(wù)器上,我們能夠在“星標(biāo)消息”中看到所有收藏的消息,如圖1-18所示。圖1-17收藏消息圖1-18星標(biāo)消息2.用戶(hù)管理用戶(hù)管理主要實(shí)現(xiàn)了對(duì)用戶(hù)的分組管理,如圖1-19所示。右側(cè)是用戶(hù)組列表,其中未分組、黑名單和星標(biāo)組是系統(tǒng)默認(rèn)的用戶(hù)組,可以點(diǎn)擊“新建分組”按鈕創(chuàng)建自定義的分組。點(diǎn)擊某個(gè)用戶(hù)組時(shí),就會(huì)顯示該用戶(hù)組下的用戶(hù)列表。新增用戶(hù)默認(rèn)歸屬于未分組。圖1-19用戶(hù)管理3.素材管理素材管理主要是為群發(fā)功能、消息管理和編輯模式服務(wù)的,為它們提供消息素材。素材管理只對(duì)圖文消息、圖片、語(yǔ)音和視頻4種類(lèi)型消息的素材進(jìn)行管理,不包括文本消息,如圖1-20所示。圖1-20素材管理那什么時(shí)候需要用到素材管理呢?當(dāng)我們需要在實(shí)時(shí)消息、群發(fā)消息或編輯模式下向用戶(hù)回復(fù)以上4種類(lèi)型的消息時(shí),就需要預(yù)先在素材管理頁(yè)面將這些消息創(chuàng)建好。1.3.3服務(wù)服務(wù)模塊是2013年10月29日公眾平臺(tái)改版時(shí)針對(duì)服務(wù)號(hào)推出的,2013年12月24日公共平臺(tái)升級(jí)后,訂閱號(hào)也能使用該模塊。服務(wù)包括“服務(wù)中心”和“我的服務(wù)”兩部分。1.服務(wù)中心服務(wù)中心列出了公眾平臺(tái)為服務(wù)號(hào)提供的所有服務(wù),服務(wù)號(hào)可以使用的服務(wù)包括基礎(chǔ)接口、自定義菜單、微信認(rèn)證和高級(jí)接口,如圖1-21所示。圖1-21服務(wù)中心基礎(chǔ)接口:通過(guò)基礎(chǔ)接口,公眾賬號(hào)能夠接收用戶(hù)發(fā)送的消息,并且向用戶(hù)回復(fù)消息。自定義菜單:通過(guò)自定義菜單,公眾賬號(hào)的界面更加豐富、友好,用戶(hù)能夠直觀地了解公眾賬號(hào)的功能。微信認(rèn)證:不同于以前的微博認(rèn)證,這是一種全新的認(rèn)證方式,提供針對(duì)公眾賬號(hào)運(yùn)營(yíng)者身份真實(shí)性的認(rèn)證服務(wù)。高級(jí)接口:服務(wù)號(hào)通過(guò)微信認(rèn)證后就能夠使用高級(jí)接口,從而為用戶(hù)提供更多有效的、有價(jià)值的個(gè)性化服務(wù)。2.我的服務(wù)在我的服務(wù)中,能夠看到當(dāng)前公眾賬號(hào)擁有的服務(wù)列表,如圖1-22所示。圖1-22我的服務(wù)1.3.4統(tǒng)計(jì)2013年8月29日,公眾平臺(tái)新增了數(shù)據(jù)統(tǒng)計(jì)功能,包括用戶(hù)分析、圖文分析、消息分析和接口分析,如圖1-23所示。這對(duì)公眾賬號(hào)的運(yùn)營(yíng)者來(lái)說(shuō)無(wú)疑是一個(gè)好消息,通過(guò)這些統(tǒng)計(jì)報(bào)表能夠充分掌握公眾賬號(hào)的實(shí)際運(yùn)營(yíng)情況,從而不斷提升服務(wù)水平。圖1-23數(shù)據(jù)統(tǒng)計(jì)功能用戶(hù)分析:可以查看任意時(shí)間段內(nèi)用戶(hù)增長(zhǎng)情況和用戶(hù)屬性分布情況。圖文分析:可以查看任意時(shí)間段內(nèi)圖文消息群發(fā)效果的統(tǒng)計(jì),包括送達(dá)人數(shù),閱讀人數(shù)、轉(zhuǎn)發(fā)人數(shù)等。消息分析:可以查看針對(duì)用戶(hù)發(fā)送的消息的統(tǒng)計(jì),包括消息發(fā)送人數(shù)、消息發(fā)送次數(shù)、人均發(fā)送次數(shù)等。接口分析:可以查看接口調(diào)用的相關(guān)統(tǒng)計(jì),包括調(diào)用次數(shù)、失敗率、平均耗時(shí)等。說(shuō)明數(shù)據(jù)從2013年7月1日開(kāi)始統(tǒng)計(jì),并且今天的運(yùn)營(yíng)數(shù)據(jù)要在明天上午才能看到。由于服務(wù)器緩存、指標(biāo)計(jì)算方法和統(tǒng)計(jì)時(shí)間的差異,數(shù)據(jù)可能出現(xiàn)微小誤差,一般在1%以?xún)?nèi)。1.3.5設(shè)置公眾平臺(tái)的設(shè)置模塊提供了對(duì)賬號(hào)信息和公眾號(hào)助手的管理功能。1.賬號(hào)信息在賬號(hào)信息頁(yè)面,可以看到公眾賬號(hào)的頭像、名稱(chēng)、登錄郵箱、原始ID、微信號(hào)、類(lèi)型、認(rèn)證情況、地區(qū)、功能介紹、騰訊微博、二維碼等信息,如圖1-24所示。在這里,我們還能夠?qū)︻^像、登錄郵箱、功能簡(jiǎn)介等信息進(jìn)行設(shè)置和修改。下面對(duì)賬號(hào)信息中比較重要的項(xiàng)進(jìn)行說(shuō)明。圖1-24賬號(hào)信息1)頭像的作用等同于應(yīng)用程序的圖標(biāo)。頭像一個(gè)月內(nèi)只能申請(qǐng)修改一次。2)名稱(chēng)和類(lèi)型都是在注冊(cè)賬號(hào)時(shí)設(shè)置的,不允許修改。3)微信號(hào)是在賬號(hào)審核通過(guò)后設(shè)置的,不允許修改。4)認(rèn)證情況顯示當(dāng)前賬號(hào)是否認(rèn)證及認(rèn)證方式。公眾賬號(hào)認(rèn)證條件、方式和流程將會(huì)在1.4節(jié)中詳細(xì)介紹。5)功能介紹是在注冊(cè)公眾賬號(hào)時(shí)設(shè)置的,一個(gè)月內(nèi)只能申請(qǐng)修改一次。6)公眾賬號(hào)綁定騰訊微博后,可以將群發(fā)的消息同步到騰訊微博。7)二維碼是微信的一大亮點(diǎn),它降低了用戶(hù)關(guān)注公眾賬號(hào)的門(mén)檻。公眾平臺(tái)為每個(gè)賬號(hào)提供了幾個(gè)不同尺寸的二維碼,方便運(yùn)營(yíng)者制作宣傳單、海報(bào)、產(chǎn)品包裝,這對(duì)品牌的宣傳和推廣非常有利。2.公眾號(hào)助手在通常情況下,公眾賬號(hào)運(yùn)營(yíng)者都是通過(guò)PC瀏覽器登錄到公眾平臺(tái)群發(fā)消息,而公眾號(hào)助手能夠?qū)崿F(xiàn)通過(guò)手機(jī)向公眾賬號(hào)的關(guān)注用戶(hù)群發(fā)消息。公眾號(hào)助手的使用方法分為兩步:1)使用個(gè)人微信號(hào)關(guān)注公眾號(hào)助手(微信號(hào)mphelper)。2)將個(gè)人微信號(hào)與公眾賬號(hào)綁定。綁定后,個(gè)人微信號(hào)向公眾號(hào)助手發(fā)送的消息將被視為公眾賬號(hào)向所有用戶(hù)群發(fā)的消息,如圖1-25所示。圖1-25向公眾號(hào)助手發(fā)消息注意公眾號(hào)助手的使用注意事項(xiàng):①一個(gè)個(gè)人微信號(hào)只能與一個(gè)公眾賬號(hào)綁定;②通過(guò)公眾號(hào)助手群發(fā)消息,一樣會(huì)消耗群發(fā)限額;③公眾號(hào)助手暫不支持向分組用戶(hù)群發(fā)消息。1.4公眾賬號(hào)認(rèn)證公眾賬號(hào)認(rèn)證是指賬號(hào)運(yùn)營(yíng)主體通過(guò)身份真實(shí)性驗(yàn)證,以確保公眾賬號(hào)的信息的真實(shí)性、安全性。公眾賬號(hào)的認(rèn)證方式分為微信認(rèn)證和微博認(rèn)證,服務(wù)號(hào)只能申請(qǐng)微信認(rèn)證,而訂閱號(hào)能申請(qǐng)微信認(rèn)證和微博認(rèn)證。公眾賬號(hào)通過(guò)微信認(rèn)證后,會(huì)在詳細(xì)資料界面顯示微信認(rèn)證標(biāo)識(shí),如圖1-26所示;公眾賬號(hào)通過(guò)微博認(rèn)證后,會(huì)在詳細(xì)資料界面顯示微博認(rèn)證標(biāo)識(shí),如圖1-27所示。圖1-26通過(guò)微信認(rèn)證的公眾賬號(hào)(左)圖1-27通過(guò)微博認(rèn)證的公眾賬號(hào)(右)公眾賬號(hào)認(rèn)證后會(huì)有以下優(yōu)勢(shì):●認(rèn)證的公眾賬號(hào)可信度更高,更容易取得用戶(hù)的信任;●通過(guò)微信的“搜號(hào)碼”功能搜索公眾賬號(hào)時(shí),按名稱(chēng)只能搜索出已認(rèn)證的公眾賬號(hào),未認(rèn)證的公眾賬號(hào)只能根據(jù)微信號(hào)搜索;●通過(guò)微信的“搜號(hào)碼”、“查找公眾號(hào)”功能搜索公眾賬號(hào)時(shí),搜索結(jié)果會(huì)優(yōu)先顯示已認(rèn)證的賬號(hào),再顯示未認(rèn)證的賬號(hào);●服務(wù)號(hào)通過(guò)微信認(rèn)證后,能夠獲取高級(jí)接口權(quán)限。而訂閱號(hào)通過(guò)微信認(rèn)證后,能夠獲得自定義菜單接口權(quán)限。1.4.1認(rèn)證條件申請(qǐng)微信認(rèn)證的條件如下:●必須是企業(yè)、媒體類(lèi)的服務(wù)號(hào),或者是政府、傳統(tǒng)媒體、明星等非企業(yè)類(lèi)型的訂閱號(hào)。申請(qǐng)微博認(rèn)證的條件如下:●賬號(hào)的訂閱用戶(hù)數(shù)達(dá)到500人;●擁有已認(rèn)證的新浪微博或騰訊微博的微博賬號(hào)。1.4.2微信認(rèn)證流程微信認(rèn)證的審核是由第三方專(zhuān)業(yè)審核機(jī)構(gòu)負(fù)責(zé),申請(qǐng)微信認(rèn)證需要支付300元/次的審核費(fèi)用,作為支付第三方審核機(jī)構(gòu)的成本。微信認(rèn)證成功后,賬號(hào)名稱(chēng)、認(rèn)證標(biāo)識(shí)及認(rèn)證信息會(huì)被保留一年,我們最遲應(yīng)該在認(rèn)證成功后一年內(nèi)完成年審認(rèn)證,年審認(rèn)證需要另行支付審核服務(wù)費(fèi)。如未通過(guò)年審認(rèn)證,認(rèn)證賬號(hào)名稱(chēng)可能會(huì)被更改,認(rèn)證標(biāo)識(shí)及認(rèn)證信息也將被取消。只要在規(guī)定的時(shí)間內(nèi),認(rèn)證申請(qǐng)真實(shí)并符合相關(guān)認(rèn)證規(guī)范要求,且企業(yè)/機(jī)構(gòu)資質(zhì)合法、有效、完整、準(zhǔn)確,申請(qǐng)人獲得企業(yè)/機(jī)構(gòu)的真實(shí)授權(quán),就能通過(guò)微信認(rèn)證。申請(qǐng)微信認(rèn)證的入口有兩處:1)依次點(diǎn)擊“服務(wù)”→“服務(wù)中心”→“微信認(rèn)證”進(jìn)入,如圖1-21所示;2)點(diǎn)擊賬號(hào)信息中認(rèn)證情況右側(cè)的“申請(qǐng)微信認(rèn)證”進(jìn)入,如圖1-24所示。微信認(rèn)證的流程如下。1)同意協(xié)議:同意并遵守《微信公眾平臺(tái)認(rèn)證服務(wù)協(xié)議》。2)同意命名規(guī)則:如果申請(qǐng)認(rèn)證的賬號(hào)名稱(chēng)不符合《公眾號(hào)命名規(guī)則》,會(huì)有審核人員與我們溝通修改,必須符合規(guī)則后才能通過(guò)認(rèn)證審核。公眾號(hào)命名規(guī)則如圖1-28所示。3)填寫(xiě)資料:選擇企業(yè)/媒體類(lèi)型,填寫(xiě)相關(guān)資料。4)填寫(xiě)發(fā)票:開(kāi)具發(fā)票需要填寫(xiě)發(fā)票抬頭和收件地址,默認(rèn)開(kāi)具增值稅普通發(fā)票,如需開(kāi)具增值稅專(zhuān)用發(fā)票,需要聯(lián)系客服獲取。如果不需要開(kāi)具發(fā)票,可以直接進(jìn)入下一步。5)支付費(fèi)用:支付認(rèn)證審核費(fèi)用300元,目前只支持微信支付。說(shuō)明支付完成后,進(jìn)入認(rèn)證審核階段,大約需要15個(gè)工作日。在審核過(guò)程中,第三方審核公司可能會(huì)與公眾賬號(hào)運(yùn)營(yíng)者聯(lián)系,要求修改或重填認(rèn)證資料。圖1-28公眾號(hào)命名規(guī)則1.4.3微博認(rèn)證流程訂閱號(hào)申請(qǐng)微博認(rèn)證的入口在賬號(hào)信息中認(rèn)證情況右側(cè)的“申請(qǐng)微博認(rèn)證”,微博認(rèn)證的流程如下。1)選擇認(rèn)證方式。目前支持騰訊微博認(rèn)證和新浪微博認(rèn)證,如圖1-29所示。圖1-29微博認(rèn)證的兩種方式2)簽署認(rèn)證用戶(hù)承諾書(shū)。3)登錄微博賬號(hào),分享內(nèi)容至微博。如果失敗,頁(yè)面上會(huì)給出失敗原因說(shuō)明。4)確認(rèn)信息。微博認(rèn)證資料將會(huì)顯示在公眾賬號(hào)的認(rèn)證資料里,確認(rèn)后將無(wú)法修改。5)認(rèn)證完成。1.5小結(jié)本章是全書(shū)的第一章,首先概括性地介紹了公眾平臺(tái)及其發(fā)展歷程,同時(shí)也為讀者介紹了如何注冊(cè)公眾賬號(hào),這是學(xué)習(xí)公眾平臺(tái)開(kāi)發(fā)的第一步。接著,為讀者介紹了公眾平臺(tái)的使用,相信讀者對(duì)公眾平臺(tái)有了更全面的認(rèn)識(shí)。最后,本章還介紹了公眾賬號(hào)認(rèn)證相關(guān)的知識(shí)。本章的內(nèi)容對(duì)讀者全面了解公眾平臺(tái)以及學(xué)好公眾平臺(tái)開(kāi)發(fā)都是非常有幫助的。第2章編輯模式的使用通過(guò)上一章的學(xué)習(xí),相信讀者已經(jīng)非常熟悉公眾平臺(tái),并完成了公眾賬號(hào)的申請(qǐng),這是我們學(xué)習(xí)后續(xù)章節(jié)必須要完成的工作。為了便于學(xué)習(xí)和掌握本書(shū)的全部?jī)?nèi)容,建議讀者在條件具備的情況下,申請(qǐng)一個(gè)服務(wù)號(hào)。公眾賬號(hào)申請(qǐng)完成后,用戶(hù)就可以在微信上關(guān)注了,但此時(shí)的公眾賬號(hào)還不具備任何功能,也不能對(duì)用戶(hù)發(fā)送的消息做出響應(yīng)。本章主要介紹公眾平臺(tái)編輯模式的使用,使讀者能夠順利通過(guò)編輯模式的可視化界面設(shè)計(jì)實(shí)現(xiàn)一個(gè)能夠響應(yīng)用戶(hù)請(qǐng)求并具備一定實(shí)用功能的公眾賬號(hào)。2.1編輯模式的應(yīng)用場(chǎng)景在公眾平臺(tái)的高級(jí)功能模塊中,可以看到兩種模式:編輯模式和開(kāi)發(fā)模式,這兩種模式有著各自的適用場(chǎng)景,是互斥的,即兩個(gè)模式不能同時(shí)使用。編輯模式主要是通過(guò)界面編輯的方式設(shè)置自動(dòng)回復(fù)和自定義菜單,所有的設(shè)置都是在公眾平臺(tái)完成。編輯模式主要適用于以下幾種應(yīng)用場(chǎng)景:●公眾賬號(hào)的運(yùn)營(yíng)者不具備開(kāi)發(fā)能力;●針對(duì)主要用途是品牌宣傳、新聞媒體、自助客服的公眾賬號(hào);●公眾賬號(hào)運(yùn)營(yíng)初期通過(guò)編輯模式快速建立原型;●通過(guò)開(kāi)發(fā)模式建立的公眾賬號(hào)在系統(tǒng)故障或升級(jí)期間可以臨時(shí)切換到編輯模式提醒用戶(hù)。公眾賬號(hào)申請(qǐng)完成后,兩種模式都處于關(guān)閉狀態(tài)。在使用某個(gè)模式前,需要先將對(duì)應(yīng)的模式置于開(kāi)啟狀態(tài)。開(kāi)啟編輯模式的步驟如下:1)登錄公眾平臺(tái),依次點(diǎn)擊“功能”→“高級(jí)功能”,選擇進(jìn)入“編輯模式”;2)將編輯模式的開(kāi)關(guān)由關(guān)閉切換為開(kāi)啟,如圖2-1所示。圖2-1開(kāi)啟編輯模式開(kāi)啟編輯模式后,就可以進(jìn)行自動(dòng)回復(fù)和自定義菜單設(shè)置了。2.2自動(dòng)回復(fù)在自動(dòng)回復(fù)設(shè)置模塊,我們可以制定一系列自動(dòng)回復(fù)規(guī)則,當(dāng)用戶(hù)發(fā)送的消息符合某條自動(dòng)回復(fù)規(guī)則時(shí),用戶(hù)將會(huì)收到設(shè)定好的自動(dòng)回復(fù)內(nèi)容,如文本、圖片、圖文、語(yǔ)音等類(lèi)型的消息。自動(dòng)回復(fù)默認(rèn)是停用的。編輯模式開(kāi)啟后,會(huì)在自動(dòng)回復(fù)的右側(cè)出現(xiàn)“啟用”按鈕,點(diǎn)擊該按鈕后,所有的自動(dòng)回復(fù)規(guī)則設(shè)置都將立即生效。啟用自動(dòng)回復(fù)后的界面如圖2-2所示。圖2-2啟用自動(dòng)回復(fù)接著,點(diǎn)擊“設(shè)置”按鈕進(jìn)入自動(dòng)回復(fù)設(shè)置界面,如圖2-3所示。在右側(cè)列出了3種自動(dòng)回復(fù)類(lèi)型,下面將為讀者詳細(xì)說(shuō)明它們各自的作用及設(shè)置方法。圖2-3自動(dòng)回復(fù)設(shè)置界面2.2.1被添加自動(dòng)回復(fù)“被添加自動(dòng)回復(fù)”是指當(dāng)用戶(hù)關(guān)注公眾賬號(hào)時(shí),自動(dòng)發(fā)送給用戶(hù)的消息。該消息也常稱(chēng)為關(guān)注提示語(yǔ)(歡迎語(yǔ)),一般包括歡迎詞、功能簡(jiǎn)介、操作指引等信息,方便用戶(hù)關(guān)注后就能立即了解到通過(guò)該公眾賬號(hào)能做哪些事情,如圖2-4所示。被添加自動(dòng)回復(fù)只能設(shè)置一條消息,而且必須文字、語(yǔ)音、圖片和視頻4種類(lèi)型消息中的一種。目前大多數(shù)公眾賬號(hào)都是以文字作為被添加自動(dòng)回復(fù)消息,因?yàn)槲淖直容^簡(jiǎn)單、直觀,還能為用戶(hù)節(jié)省流量。圖2-4設(shè)置“被添加自動(dòng)回復(fù)”2.2.2消息自動(dòng)回復(fù)消息自動(dòng)回復(fù)是指當(dāng)用戶(hù)向公眾賬號(hào)發(fā)消息時(shí),自動(dòng)回復(fù)給用戶(hù)的消息。與被添加自動(dòng)回復(fù)相同,消息自動(dòng)回復(fù)也只能設(shè)置一條消息,消息類(lèi)型也必須是文字、語(yǔ)音、圖片和視頻中的一種。圖2-5演示了消息自動(dòng)回復(fù)的一種典型應(yīng)用場(chǎng)景。采用開(kāi)發(fā)模式建立的公眾賬號(hào)在發(fā)生服務(wù)器故障時(shí),不管用戶(hù)發(fā)送什么消息請(qǐng)求都得不到回復(fù),這使用戶(hù)體驗(yàn)非常差。與其這樣,還不如從開(kāi)發(fā)模式切換到編輯模式,并設(shè)置一條如圖2-5所示的故障維修通知作為消息自動(dòng)回復(fù)。這樣,不管用戶(hù)發(fā)送什么消息,公眾賬號(hào)都將回復(fù)故障維修通知給用戶(hù)。待故障維修完以后,再?gòu)木庉嬆J角袚Q到開(kāi)發(fā)模式,公眾賬號(hào)又能正常工作了。圖2-5設(shè)置消息自動(dòng)回復(fù)2.2.3關(guān)鍵詞自動(dòng)回復(fù)關(guān)鍵詞自動(dòng)回復(fù)是指當(dāng)用戶(hù)發(fā)送的消息符合某個(gè)設(shè)定的關(guān)鍵詞規(guī)則時(shí),自動(dòng)回復(fù)相應(yīng)的內(nèi)容給用戶(hù)。在關(guān)鍵詞自動(dòng)回復(fù)界面,會(huì)列出已經(jīng)設(shè)置好的全部規(guī)則。由于是第一次使用,我們還沒(méi)有創(chuàng)建任何規(guī)則。點(diǎn)擊界面右上方的“添加規(guī)則”按鈕,將會(huì)看到如圖2-6所示的規(guī)則添加界面??梢钥闯觯粭l關(guān)鍵詞自動(dòng)回復(fù)規(guī)則由3部分組成:規(guī)則名、關(guān)鍵字和回復(fù),它們的主要作用如表2-1所示。圖2-6添加規(guī)則表2-1關(guān)鍵詞自動(dòng)回復(fù)規(guī)則組成除了它們各自的作用外,我們還應(yīng)掌握關(guān)鍵詞與回復(fù)之間的關(guān)系。同一條規(guī)則可以設(shè)置多個(gè)關(guān)鍵詞,也可以設(shè)置多條回復(fù)。關(guān)鍵詞與回復(fù)的關(guān)系有4種:一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多。為了讓讀者能夠充分理解關(guān)鍵詞自動(dòng)回復(fù),筆者再通過(guò)幾個(gè)典型的規(guī)則配置示例進(jìn)一步說(shuō)明。1)當(dāng)用戶(hù)向公眾賬號(hào)發(fā)送的消息中包含“火警”兩個(gè)字時(shí),就會(huì)自動(dòng)回復(fù)文字“火警電話(huà):119”給用戶(hù)。該規(guī)則的關(guān)鍵字匹配方式為部分匹配,規(guī)則的配置如圖2-7所示。2)當(dāng)用戶(hù)向公眾賬號(hào)發(fā)送的消息為“匪警”兩個(gè)字時(shí),就會(huì)自動(dòng)回復(fù)文字“匪警電話(huà):110”給用戶(hù)。該規(guī)則的關(guān)鍵字匹配方式為完全匹配,規(guī)則的配置如圖2-8所示。圖2-7關(guān)鍵詞部分匹配的規(guī)則配置(左)圖2-8關(guān)鍵詞完全匹配的規(guī)則配置(右)3)當(dāng)用戶(hù)向公眾賬號(hào)發(fā)送的消息中包含“報(bào)警”兩個(gè)字,就會(huì)自動(dòng)回復(fù)文字“匪警電話(huà):110”或“火警電話(huà):119”給用戶(hù)。該規(guī)則中關(guān)鍵字與回復(fù)是一對(duì)多關(guān)系,規(guī)則的配置如圖2-9所示。說(shuō)明如果在圖2-9中勾選了右側(cè)的“回復(fù)全部”選項(xiàng),那么當(dāng)用戶(hù)向公眾賬號(hào)發(fā)送包含“報(bào)警”的消息內(nèi)容時(shí),會(huì)連續(xù)收到兩條回復(fù)消息“匪警電話(huà):110”和“火警電話(huà):119”。這意味著在編輯模式下,用戶(hù)發(fā)送一條消息有可能會(huì)收到多條回復(fù)。4)當(dāng)用戶(hù)向公眾賬號(hào)發(fā)送的消息中包含“匪警”或“報(bào)警”兩個(gè)字,就會(huì)自動(dòng)回復(fù)文字“報(bào)警電話(huà):110”給用戶(hù)。該規(guī)則中關(guān)鍵字與回復(fù)是多對(duì)一關(guān)系,規(guī)則的配置如圖2-10所示。圖2-9關(guān)鍵詞與回復(fù)的一對(duì)多關(guān)系(左)圖2-10關(guān)鍵詞與回復(fù)的多對(duì)一關(guān)系(右)2.2.4自動(dòng)回復(fù)優(yōu)先規(guī)則我們來(lái)思考這樣一個(gè)問(wèn)題:消息自動(dòng)回復(fù)與關(guān)鍵詞自動(dòng)回復(fù)都是用于設(shè)置當(dāng)用戶(hù)向公眾賬號(hào)發(fā)送消息時(shí),回復(fù)什么消息給用戶(hù)。如果公眾賬號(hào)對(duì)這兩種自動(dòng)回復(fù)都進(jìn)行了設(shè)置,那么該以哪個(gè)設(shè)置為主呢?這就涉及自動(dòng)回復(fù)優(yōu)先規(guī)則的問(wèn)題。自動(dòng)回復(fù)的優(yōu)先規(guī)則如下。1)消息自動(dòng)回復(fù):只要用戶(hù)向公眾賬號(hào)發(fā)送消息便會(huì)回復(fù),而不管用戶(hù)發(fā)送的消息類(lèi)型和消息內(nèi)容是什么;但如果用戶(hù)發(fā)送的消息能夠匹配某條關(guān)鍵字回復(fù)規(guī)則,將會(huì)優(yōu)先就關(guān)鍵字自動(dòng)回復(fù)。2)關(guān)鍵字自動(dòng)回復(fù):如果用戶(hù)發(fā)送的消息匹配多條關(guān)鍵字回復(fù)規(guī)則,則會(huì)隨機(jī)回復(fù)。因此,自動(dòng)回復(fù)是以關(guān)鍵字自動(dòng)回復(fù)為主,消息自動(dòng)回復(fù)為輔。也就是說(shuō),只有當(dāng)用戶(hù)發(fā)送的消息與所有關(guān)鍵字回復(fù)規(guī)則都不匹配的情況下,才會(huì)采用消息自動(dòng)回復(fù)。2.3案例:簡(jiǎn)易號(hào)碼簿通過(guò)前面的學(xué)習(xí),想必讀者對(duì)編輯模式的自動(dòng)回復(fù)已經(jīng)非常熟悉了。那么如何才能將3種類(lèi)型的自動(dòng)回復(fù)結(jié)合起來(lái),設(shè)計(jì)出一個(gè)完整實(shí)用的公眾賬號(hào)呢?號(hào)碼簿是我們生活中經(jīng)常用到的工具,非常方便實(shí)用。下面筆者就以簡(jiǎn)易號(hào)碼簿公眾賬號(hào)的開(kāi)發(fā)為例,詳細(xì)說(shuō)明各開(kāi)發(fā)步驟。簡(jiǎn)易僅僅是指數(shù)據(jù)少,而不是指功能上的簡(jiǎn)單。2.3.1案例功能描述簡(jiǎn)易號(hào)碼簿的主要作用就是方便用戶(hù)瀏覽、查找常用號(hào)碼,這其中并不涉及復(fù)雜的業(yè)務(wù)邏輯。簡(jiǎn)易號(hào)碼簿主要包含以下功能:1)用戶(hù)關(guān)注公眾賬號(hào)時(shí),自動(dòng)向用戶(hù)發(fā)送關(guān)注提示語(yǔ);2)提供文本交互菜單供用戶(hù)選擇,方便用戶(hù)瀏覽號(hào)碼;3)支持用戶(hù)通過(guò)輸入關(guān)鍵字查找號(hào)碼,如果沒(méi)有查找到,應(yīng)該給予友好提示;4)支持收集用戶(hù)的使用建議。2.3.2數(shù)據(jù)準(zhǔn)備需求明確后,接下來(lái)要做的工作就是數(shù)據(jù)準(zhǔn)備。筆者準(zhǔn)備了9條號(hào)碼數(shù)據(jù),其中特種服務(wù)號(hào)碼、通訊服務(wù)號(hào)碼和銀行服務(wù)號(hào)碼各3條,如表2-2所示。表2-2簡(jiǎn)易號(hào)碼簿使用的號(hào)碼數(shù)據(jù)2.3.3設(shè)計(jì)關(guān)注提示語(yǔ)關(guān)注提示語(yǔ)是公眾賬號(hào)發(fā)送給用戶(hù)的第一條消息,會(huì)給用戶(hù)留下第一印象,因此千萬(wàn)不能應(yīng)付式地隨便設(shè)置一條了事。一條設(shè)計(jì)良好的關(guān)注提示語(yǔ)至少應(yīng)該包含歡迎詞、功能簡(jiǎn)介、操作指引等內(nèi)容。簡(jiǎn)易號(hào)碼簿的關(guān)注提示語(yǔ)設(shè)置如圖2-11所示。圖2-11關(guān)注提示語(yǔ)設(shè)置上面的關(guān)注提示語(yǔ)合理地運(yùn)用了換行將歡迎詞、功能簡(jiǎn)介和操作指引進(jìn)行了分隔,這樣呈現(xiàn)在手機(jī)上會(huì)更加美觀,有層次感,方便用戶(hù)閱讀。2.3.4設(shè)計(jì)關(guān)鍵詞規(guī)則關(guān)鍵詞規(guī)則的設(shè)計(jì)直接影響到用戶(hù)交互體驗(yàn),因此在設(shè)計(jì)時(shí)要盡可能考慮全面,合理地設(shè)計(jì)。根據(jù)簡(jiǎn)易號(hào)碼簿的功能要求,可以將關(guān)鍵詞規(guī)則分為3部分:文本菜單交互、號(hào)碼查詢(xún)和用戶(hù)反饋。1.文本菜單交互對(duì)于文本菜單交互部分,只需要設(shè)置5條關(guān)鍵詞規(guī)則,對(duì)應(yīng)的5個(gè)關(guān)鍵字分別是:?、1、2、3和4,關(guān)鍵字匹配方式均為完全匹配。1)當(dāng)用戶(hù)發(fā)送“?”時(shí),回復(fù)如下所示的文本菜單。請(qǐng)回復(fù)數(shù)字選擇服務(wù):1特種服務(wù)號(hào)碼2通訊服務(wù)號(hào)碼3銀行服務(wù)號(hào)碼4用戶(hù)反饋2)當(dāng)用戶(hù)發(fā)送“1”時(shí),回復(fù)如下所示的特種服務(wù)號(hào)碼列表。常用特種服務(wù)號(hào)碼列表:匪警110火警119急救中心120回復(fù)?顯示主菜單3)當(dāng)用戶(hù)發(fā)送“2”時(shí),回復(fù)如下所示的通訊服務(wù)號(hào)碼列表。常用通訊服務(wù)號(hào)碼列表:中國(guó)移動(dòng)客服10086中國(guó)聯(lián)通客服10010中國(guó)電信客服10000回復(fù)?顯示主菜單4)當(dāng)用戶(hù)發(fā)送“3”時(shí),回復(fù)如下所示的銀行服務(wù)號(hào)碼列表。常用銀行服務(wù)號(hào)碼列表:建設(shè)銀行客服95533工商銀行客服95588農(nóng)業(yè)銀行客服95599回復(fù)?顯示主菜單5)當(dāng)用戶(hù)發(fā)送“4”時(shí),回復(fù)如下所示的用戶(hù)反饋提示。尊敬的用戶(hù),為了更好地為您服務(wù),請(qǐng)將系統(tǒng)的不足之處反饋給我們。反饋格式:@+建議內(nèi)容例如:@希望增加***號(hào)碼2.號(hào)碼查詢(xún)對(duì)于號(hào)碼查詢(xún)部分,筆者為每個(gè)號(hào)碼設(shè)計(jì)了一條關(guān)鍵詞規(guī)則,并且關(guān)鍵字匹配方式均為部分匹配,如表2-3所示。表2-3號(hào)碼查詢(xún)的關(guān)鍵詞規(guī)則設(shè)計(jì)3.用戶(hù)反饋從文本菜單交互中可以了解到,用戶(hù)提交的反饋信息以“@”符號(hào)開(kāi)頭。由于關(guān)鍵詞規(guī)則的匹配方式只有部分匹配和完全匹配,并不能判斷是否以關(guān)鍵字開(kāi)頭。因此,只能認(rèn)為只要用戶(hù)發(fā)送的消息中包含“@”,就認(rèn)為用戶(hù)是在提交反饋。用戶(hù)反饋的關(guān)鍵詞規(guī)則設(shè)置如圖2-12所示。圖2-12用戶(hù)反饋的關(guān)鍵詞規(guī)則設(shè)置2.3.5設(shè)置默認(rèn)回復(fù)除文本菜單交互和用戶(hù)反饋外,用戶(hù)發(fā)送的其他所有消息都將被視作號(hào)碼查詢(xún)。如果沒(méi)有查詢(xún)到符合條件的號(hào)碼,則將采用默認(rèn)回復(fù),默認(rèn)回復(fù)的設(shè)置如圖2-13所示。圖2-13簡(jiǎn)易號(hào)碼簿的默認(rèn)回復(fù)設(shè)置2.3.6測(cè)試體驗(yàn)經(jīng)過(guò)上面的設(shè)置,簡(jiǎn)易號(hào)碼簿就開(kāi)發(fā)完成了。最后,通過(guò)微信關(guān)注賬號(hào)進(jìn)行測(cè)試體驗(yàn),一方面可以檢驗(yàn)我們的設(shè)置是否正確,另一方面也可以進(jìn)一步加深對(duì)自動(dòng)回復(fù)的理解。關(guān)注賬號(hào)后,首先會(huì)收到賬號(hào)發(fā)送的關(guān)注提示語(yǔ);再根據(jù)提示語(yǔ)中的操作指引,回復(fù)“?”獲取文本菜單,如圖2-14所示。文本菜單提供了4項(xiàng)服務(wù),回復(fù)數(shù)字1~4即可選擇相應(yīng)的服務(wù)。我們能夠通過(guò)兩種方式來(lái)獲取號(hào)碼信息:菜單交互和關(guān)鍵字查詢(xún),如圖2-15所示。圖2-14關(guān)注提示語(yǔ)和文本菜單(左)圖2-15通過(guò)菜單交互和關(guān)鍵字查詢(xún)獲取號(hào)碼(右)當(dāng)發(fā)送的消息沒(méi)有匹配到任何關(guān)鍵詞規(guī)則時(shí),將會(huì)收到消息自動(dòng)回復(fù)中設(shè)置的默認(rèn)回復(fù),如圖2-16所示?;貜?fù)數(shù)字“4”時(shí),將會(huì)收到用戶(hù)反饋的操作提示。根據(jù)提示發(fā)送一條建議,公眾賬號(hào)能夠識(shí)別并做出相應(yīng)的回復(fù),如圖2-17所示。圖2-16沒(méi)有查找到號(hào)碼時(shí)的回復(fù)(左)圖2-17用戶(hù)反饋(右)2.4自定義菜單自定義菜單類(lèi)似于手機(jī)App(Application的縮寫(xiě),即應(yīng)用程序)的標(biāo)簽欄,它位于公眾賬號(hào)的底部,如圖2-18所示。圖2-18公眾賬號(hào)的自定義菜單自定義菜單將公眾賬號(hào)的功能直觀地呈現(xiàn)在用戶(hù)面前,用戶(hù)只要點(diǎn)擊菜單項(xiàng)就能夠獲取相應(yīng)的信息。自定義菜單使得用戶(hù)獲取信息的方式從輸入關(guān)鍵字逐漸轉(zhuǎn)變?yōu)辄c(diǎn)擊菜單項(xiàng),它在一定程度上降低了用戶(hù)獲取信息的成本,同時(shí)也增加了用戶(hù)與公眾賬號(hào)的交互頻次。服務(wù)號(hào)默認(rèn)有自定義菜單權(quán)限,訂閱號(hào)通過(guò)微信認(rèn)證后也能獲得自定義菜單權(quán)限。與自動(dòng)回復(fù)一樣,自定義菜單默認(rèn)也是停用狀態(tài),在設(shè)置前需要先將它啟用,啟用后就能看到“設(shè)置”按鈕,點(diǎn)擊后進(jìn)入到自定義菜單設(shè)置界面,該界面分為“編輯”和“發(fā)布”兩部分,編輯界面用于創(chuàng)建菜單(包括添加菜單、設(shè)置菜單響應(yīng)動(dòng)作、排序等),如圖2-19所示,發(fā)布界面用于預(yù)覽和發(fā)布菜單,如圖2-20所示。圖2-19自定義菜單編輯界面圖2-20自定義菜單發(fā)布界面2.4.1編輯菜單菜單的創(chuàng)建過(guò)程其實(shí)就是菜單屬性的設(shè)置過(guò)程,因此在實(shí)際操作前需要熟悉菜單的各項(xiàng)屬性及功能,如表2-4所示。表2-4菜單的各項(xiàng)屬性及功能注意子菜單與動(dòng)作都不是菜單必須設(shè)置的屬性。但對(duì)于同一個(gè)菜單,子菜單與動(dòng)作必須設(shè)置一項(xiàng)。在菜單編輯界面,菜單管理中的“添加”按鈕用于添加一級(jí)菜單,點(diǎn)擊該按鈕將會(huì)彈出一級(jí)菜單名稱(chēng)設(shè)置對(duì)話(huà)框,如圖2-21所示。一級(jí)菜單名稱(chēng)的長(zhǎng)度不能超過(guò)8字節(jié),其中一個(gè)漢字占2字節(jié),一個(gè)字母或數(shù)字占1字節(jié)。圖2-21設(shè)置一級(jí)菜單名稱(chēng)一級(jí)菜單名稱(chēng)設(shè)置完成后,在菜單管理中將它選中,將會(huì)看到能夠?qū)υ摬藛嗡龅娜坎僮?,如圖2-22所示。圖2-22選中一級(jí)菜單在一級(jí)菜單名稱(chēng)右側(cè),有3個(gè)按鈕分別是添加子菜單、改名和刪除;在“設(shè)置動(dòng)作”中,有“發(fā)送消息”和“跳轉(zhuǎn)到網(wǎng)頁(yè)”兩個(gè)按鈕,這5個(gè)操作按鈕的功能描述如表2-5所示。表2-5一級(jí)菜單操作按鈕功能描述之前也曾提到過(guò),一級(jí)菜單的子菜單和動(dòng)作只能設(shè)置其一,而且必須設(shè)置其一。如果已經(jīng)添加子菜單,則無(wú)法設(shè)置動(dòng)作;如果要設(shè)置動(dòng)作,則必須刪除所有已添加的子菜單。點(diǎn)擊一級(jí)菜單名稱(chēng)右側(cè)“添加子菜單”按鈕,將會(huì)彈出二級(jí)菜單名稱(chēng)設(shè)置對(duì)話(huà)框,如圖2-23所示。二級(jí)菜單名稱(chēng)的長(zhǎng)度不能超過(guò)16字節(jié)。圖2-23設(shè)置二級(jí)菜單名稱(chēng)二級(jí)菜單名稱(chēng)設(shè)置完成后,在“菜單管理”中將它選中,看到的操作按鈕只有4個(gè),比一級(jí)菜單少了“添加子菜單”按鈕。二級(jí)菜單的4個(gè)功能按鈕的作用與一級(jí)菜單的完全相同。接下來(lái),為二級(jí)菜單“QQ郵箱”設(shè)置動(dòng)作“發(fā)送消息”,如圖2-24所示。該動(dòng)作支持的消息類(lèi)型有5種(文字、語(yǔ)音、圖片、視頻和圖文消息),但對(duì)于同一個(gè)菜單只能設(shè)置其中一種作為用戶(hù)點(diǎn)擊菜單后發(fā)送給用戶(hù)的消息。圖2-24為菜單設(shè)置動(dòng)作“發(fā)送消息”我們?cè)僖酝瑯拥姆绞教砑右粋€(gè)名為“163郵箱”的二級(jí)菜單,但動(dòng)作設(shè)置為“跳轉(zhuǎn)到網(wǎng)頁(yè)”,如圖2-25所示。到這里,我們已經(jīng)創(chuàng)建了一個(gè)一級(jí)菜單“郵箱導(dǎo)航”,并為其添加了兩個(gè)二級(jí)菜單“QQ郵箱”和“163郵箱”。在微信客戶(hù)端上,一級(jí)菜單會(huì)按照添加的先后順序從左至右依次顯示,一級(jí)菜單下的二級(jí)菜單會(huì)按照添加的先后順序從上至下依次顯示。如果要調(diào)整菜單的顯示順序,可以通過(guò)點(diǎn)擊圖2-25中的“排序”按鈕來(lái)實(shí)現(xiàn)。圖2-25為菜單設(shè)置動(dòng)作“跳轉(zhuǎn)到網(wǎng)頁(yè)”2.4.2預(yù)覽和發(fā)布菜單編輯中的菜單并不會(huì)在微信客戶(hù)端上生效,也就不會(huì)被用戶(hù)看到,因此可以放心調(diào)試。那我們又如何看到已經(jīng)編輯好的菜單在手機(jī)上的顯示效果呢?從圖2-20中可以看到,公眾平臺(tái)為我們提供了菜單預(yù)覽功能。點(diǎn)擊“預(yù)覽”按鈕,將會(huì)彈出一個(gè)手機(jī)模擬器,該模擬器不僅支持菜單外觀的顯示,而且還支持菜單動(dòng)作的響應(yīng)。在模擬器的底部能夠看到已經(jīng)添加的一級(jí)菜單“郵箱導(dǎo)航”,點(diǎn)擊它會(huì)彈出二級(jí)菜單,如圖2-26所示。點(diǎn)擊二級(jí)菜單,模擬器也會(huì)做出響應(yīng)。圖2-26在模擬器中預(yù)覽編輯中的菜單如果在菜單預(yù)覽過(guò)程中沒(méi)有發(fā)現(xiàn)任何問(wèn)題,就可以放心地將菜單發(fā)布給用戶(hù)使用了。菜單的發(fā)布很簡(jiǎn)單,只需要點(diǎn)擊圖2-20下方的“發(fā)布”按鈕即可。注意由于微信客戶(hù)端緩存的原因,菜單發(fā)布后也不會(huì)立即在手機(jī)上生效,要過(guò)24小時(shí)才能保證在所有用戶(hù)的手機(jī)上生效。為了便于真機(jī)測(cè)試菜單,可以嘗試通過(guò)“取消關(guān)注公眾賬號(hào),再次關(guān)注”的方式立即看到新的菜單。菜單發(fā)布后,在手機(jī)上體驗(yàn)菜單的效果如圖2-27所示。點(diǎn)擊“郵箱導(dǎo)航”將會(huì)彈出二級(jí)菜單列表。之后,點(diǎn)擊“QQ郵箱”,公眾賬號(hào)會(huì)發(fā)送文本消息"",而點(diǎn)擊“163郵箱”則會(huì)通過(guò)微信內(nèi)置瀏覽器訪問(wèn)鏈接""。圖2-27在手機(jī)上體驗(yàn)自定義菜單2.5小結(jié)不管是否具備開(kāi)發(fā)能力,掌握編輯模式的使用都是非常有必要的。本章詳細(xì)介紹了編輯模式的使用,包括自動(dòng)回復(fù)和自定義菜單??紤]到自動(dòng)回復(fù)對(duì)于編輯模式的重要性,本章還給出了一個(gè)簡(jiǎn)易號(hào)碼簿實(shí)例的詳細(xì)開(kāi)發(fā)步驟。相對(duì)而言,編輯模式是比較簡(jiǎn)單的,但如果讀者能夠仔細(xì)研究,用心思考,一樣能夠開(kāi)發(fā)出實(shí)用的、有創(chuàng)意的應(yīng)用。第3章開(kāi)發(fā)模式的啟用通過(guò)上一章的學(xué)習(xí),想必讀者已經(jīng)能夠使用編輯模式設(shè)計(jì)實(shí)現(xiàn)一些滿(mǎn)足特定需求的公眾賬號(hào)了。但是,也有很多應(yīng)用場(chǎng)景是編輯模式不能滿(mǎn)足的,例如用戶(hù)身份驗(yàn)證、對(duì)接企業(yè)的業(yè)務(wù)系統(tǒng)、個(gè)性化回復(fù)等,這些只有通過(guò)開(kāi)發(fā)模式才能實(shí)現(xiàn)。本章主要介紹開(kāi)發(fā)模式的啟用。3.1開(kāi)發(fā)模式的基礎(chǔ)知識(shí)開(kāi)發(fā)模式主要針對(duì)具備開(kāi)發(fā)能力的賬號(hào)運(yùn)營(yíng)者。在開(kāi)發(fā)模式下,公眾賬號(hào)的所有功能都是通過(guò)編程實(shí)現(xiàn)的。相對(duì)而言,開(kāi)發(fā)模式更加復(fù)雜,對(duì)賬號(hào)運(yùn)營(yíng)者的要求也更高。3.1.1啟用開(kāi)發(fā)模式的必備條件不同于編輯模式,開(kāi)發(fā)模式的啟用并不是簡(jiǎn)單地切換狀態(tài)開(kāi)關(guān)就能完成的。啟用開(kāi)發(fā)模式至少需要具備以下3個(gè)條件。1)完善賬號(hào)信息:在啟用開(kāi)發(fā)模式時(shí),系統(tǒng)會(huì)檢查公眾賬號(hào)的頭像、功能介紹、運(yùn)營(yíng)地區(qū)等信息是否設(shè)置完整。在公眾平臺(tái)的設(shè)置模塊,能夠看到公眾賬號(hào)的全部信息。2)請(qǐng)求校驗(yàn)程序:?jiǎn)⒂瞄_(kāi)發(fā)模式的過(guò)程中會(huì)要求填寫(xiě)接口配置信息,這就意味著要先完成請(qǐng)求校驗(yàn)程序的開(kāi)發(fā)。至于請(qǐng)求校驗(yàn)程序有哪些要求、如何開(kāi)發(fā)都將在3.2節(jié)中為讀者詳細(xì)介紹。3)公網(wǎng)環(huán)境:通常,我們?cè)趥€(gè)人電腦上部署的Web應(yīng)用都處在內(nèi)網(wǎng)環(huán)境,只能由自己或局域網(wǎng)用戶(hù)訪問(wèn),外網(wǎng)用戶(hù)是訪問(wèn)不到的。由于公眾賬號(hào)的處理程序需要與微信服務(wù)器進(jìn)行交互,因此必須將其部署在公網(wǎng)環(huán)境。公網(wǎng)環(huán)境除了能夠支撐程序的運(yùn)行外,還應(yīng)具備獨(dú)立的公網(wǎng)IP或者能夠?yàn)椴渴鸬膽?yīng)用程序分配訪問(wèn)域名,使得應(yīng)用程序能夠被外網(wǎng)用戶(hù)訪問(wèn)。對(duì)于許多中小企業(yè)或個(gè)人開(kāi)發(fā)者而言,公網(wǎng)環(huán)境無(wú)疑成了使用公眾平臺(tái)開(kāi)發(fā)模式的最大障礙。3.1.2應(yīng)用引擎簡(jiǎn)介應(yīng)用引擎(AppEngine)是一種網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)平臺(tái),它使得開(kāi)發(fā)者不需要維護(hù)任何服務(wù)器,只需要簡(jiǎn)單上傳應(yīng)用程序,就能夠?yàn)橥饩W(wǎng)用戶(hù)提供服務(wù),為開(kāi)發(fā)者節(jié)約了大量的人力投入、時(shí)間投入以及各種軟硬件成本。應(yīng)用引擎正好能夠解決我們對(duì)公網(wǎng)環(huán)境的需求。接下來(lái),筆者將為大家介紹兩個(gè)常用的應(yīng)用引擎:新浪的SAE和百度的BAE。1.SAESAE(SinaAppEngine)是一個(gè)簡(jiǎn)單高效的分布式Web服務(wù)開(kāi)發(fā)及運(yùn)行平臺(tái),它是新浪研發(fā)中心于2009年11月3日正式推出的國(guó)內(nèi)首個(gè)公有云計(jì)算平臺(tái)。SAE提供了一系列分布式計(jì)算、存儲(chǔ)服務(wù)供開(kāi)發(fā)者使用,包括分布式文件存儲(chǔ)、分布式數(shù)據(jù)庫(kù)集群、分布式緩存、分布式定時(shí)服務(wù)等,這些服務(wù)將大大降低開(kāi)發(fā)者的開(kāi)發(fā)成本。同時(shí)又由于SAE整體架構(gòu)的高可靠性和新浪的品牌保證,大大降低了開(kāi)發(fā)者的運(yùn)營(yíng)風(fēng)險(xiǎn)。另外,作為典型的云計(jì)算,SAE采用“所付即所用,所付僅所用”的計(jì)費(fèi)理念,通過(guò)日志和統(tǒng)計(jì)中心精確地計(jì)算每個(gè)應(yīng)用的資源消耗(包括CPU、內(nèi)存、磁盤(pán)等)。2.BAEBAE(BaiduAppEngine)是一個(gè)支持多語(yǔ)言的、彈性的服務(wù)端運(yùn)行環(huán)境,幫助開(kāi)發(fā)者快速開(kāi)發(fā)并部署應(yīng)用。使用BAE,開(kāi)發(fā)者不用維護(hù)任何服務(wù)器,只需要簡(jiǎn)單地上傳應(yīng)用程序,就可以為用戶(hù)提供服務(wù),從而縮短產(chǎn)品發(fā)布周期,使快速適配市場(chǎng)需求。BAE目前已發(fā)展到3.0版本,主要特性如下:●業(yè)界主流Runtime,應(yīng)用遷移零成本;●支持后臺(tái)worker程序運(yùn)行(可以長(zhǎng)時(shí)間運(yùn)行的后臺(tái)任務(wù));●支持PHP、Java、Python;●SVN/GIT管理代碼,一鍵式應(yīng)用自動(dòng)部署;●支持動(dòng)態(tài)擴(kuò)容、負(fù)載均衡;●可快捷接入云存儲(chǔ)、云推送、媒體云等豐富的云服務(wù)。SAE和BAE各有優(yōu)勢(shì),都能夠滿(mǎn)足公眾平臺(tái)的開(kāi)發(fā)需要。但對(duì)于訪問(wèn)量較小的應(yīng)用來(lái)說(shuō),BAE幾乎是完全免費(fèi)的。因此,對(duì)于沒(méi)有公網(wǎng)環(huán)境的開(kāi)發(fā)者而言,BAE無(wú)疑是學(xué)習(xí)公眾平臺(tái)開(kāi)發(fā)的首選。說(shuō)明對(duì)于收費(fèi)的公網(wǎng)環(huán)境,讀者可以考慮租用阿里云的云主機(jī)或者租用其他服務(wù)商提供的VPS(VirtualPrivateServer,即虛擬專(zhuān)用服務(wù)器)。3.1.3開(kāi)發(fā)工具介紹對(duì)于公眾平臺(tái)的開(kāi)發(fā),官方只給出了PHP的示例代碼,這也讓部分開(kāi)發(fā)者誤以為只有PHP一種選擇。公眾平臺(tái)的處理程序其實(shí)就是一個(gè)Web項(xiàng)目,負(fù)責(zé)接收并響應(yīng)微信服務(wù)器發(fā)送的HTTP請(qǐng)求。因此,只要是支持動(dòng)態(tài)Web開(kāi)發(fā)的編程語(yǔ)言,都能夠用于公眾平臺(tái)開(kāi)發(fā),例如Java、PHP、.NET、ASP和Ruby。建議讀者選擇自己擅長(zhǎng)或者熱門(mén)的編程語(yǔ)言,這樣才能保證有較好的質(zhì)量和效率,筆者選擇的是Java語(yǔ)言。本章及后續(xù)章節(jié)的內(nèi)容并不太適合沒(méi)有任何編程基礎(chǔ)的讀者閱讀,讀者至少應(yīng)該熟悉Java基礎(chǔ)及JavaWeb開(kāi)發(fā),并對(duì)JSP和Servlet有一定的了解。下面將對(duì)搭建公眾平臺(tái)開(kāi)發(fā)環(huán)境用到的工具進(jìn)行介紹,至于工具的安裝和配置都比較簡(jiǎn)單,網(wǎng)上有大量的資料可以參考,筆者在此不再贅述了。1.JDKJDK是原SUN公司推出的Java開(kāi)發(fā)工具包,它是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境、Java工具和Java基礎(chǔ)類(lèi)庫(kù)。JDK已由最初的JDK1.0,發(fā)展到現(xiàn)在的JDK1.7,隨著版本的不斷更新,運(yùn)行效率也得到了顯著的提高。筆者下載安裝的是JDK1.6版本,下載地址為/technetwork/java/javase/archive-139210.html,在頁(yè)面中能夠看到“JavaSE6”,它指代的正是JDK1.6。2.MyEclipseJava開(kāi)發(fā)工具有很多種,比較著名的有Eclipse、NetBeans和JBuilder,這些工具本身也是使用Java編寫(xiě)的。其中,Eclipse以其開(kāi)源和擴(kuò)展性,深受廣大Java開(kāi)發(fā)者喜愛(ài)。Eclipse本身只是一個(gè)框架和一組服務(wù),通過(guò)安裝相應(yīng)的插件構(gòu)建開(kāi)發(fā)環(huán)境。如果要用Eclipse開(kāi)發(fā)JavaWeb應(yīng)用,就需要為其安裝支持JavaWeb開(kāi)發(fā)的插件,而MyEclipse就是最佳選擇。MyEclipse是一款非常優(yōu)秀的用于開(kāi)發(fā)Java、J2EE應(yīng)用的Eclipse插件,目前支持Java、JSP、Servlet、JDBC、AJAX、JSF、Struts、Spring、Hibernate、EJB3等多項(xiàng)功能。MyEclipse是一款幾乎囊括了目前所有主流開(kāi)源產(chǎn)品的專(zhuān)屬Eclipse開(kāi)發(fā)工具,它的下載地址為/,筆者使用的版本是MyEclipse6.0.0GA。注意MyEclipse需要付費(fèi)使用。至于免費(fèi)的、可以考慮LombozEclipse和EclipseIDEforJavaEEDevelopers。LombozEclipse的下載地址:/downloads.php。EclipseIDEforJavaEEDevelopers的下載地址:/downloads/。3.TomcatTomcat是Apache軟件基金會(huì)(ApacheSoftwareFoundation)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,它是一個(gè)免費(fèi)的、開(kāi)源的Web應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)較小的場(chǎng)合下使用普遍。Tomcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因此深受Java開(kāi)發(fā)者的喜愛(ài),同時(shí)也得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。提示建議下載Tomcat6.0的最新版本,下載地址為/。3.2開(kāi)發(fā)請(qǐng)求校驗(yàn)程序公眾平臺(tái)開(kāi)發(fā)者文檔是專(zhuān)門(mén)為開(kāi)發(fā)人員提供的,它是開(kāi)發(fā)人員進(jìn)行接口編程的重要依據(jù)。因此,只要使用公眾平臺(tái)開(kāi)發(fā)模式,都必須認(rèn)真研究開(kāi)發(fā)者文檔。3.2.1開(kāi)發(fā)者文檔介紹登錄公眾平臺(tái),依次點(diǎn)擊“功能”→“高級(jí)功能”→“開(kāi)發(fā)模式”→“查看文檔”進(jìn)入到開(kāi)發(fā)者文檔首頁(yè),在左側(cè)顯示了開(kāi)發(fā)者文檔的目錄結(jié)構(gòu),包括新手接入、基礎(chǔ)支持、接收消息、發(fā)送消息、用戶(hù)管理、自定義菜單、推廣支持、WeixinJS接口和開(kāi)發(fā)者交流互助,如圖3-1所示。圖3-1公眾平臺(tái)開(kāi)發(fā)者文檔目錄結(jié)構(gòu)公眾平臺(tái)開(kāi)發(fā)者文檔目錄結(jié)構(gòu)說(shuō)明如表3-1所示。表3-1公眾平臺(tái)開(kāi)發(fā)者文檔目錄結(jié)構(gòu)說(shuō)明由于訂閱號(hào)不支持高級(jí)接口,因此在開(kāi)發(fā)訂閱號(hào)時(shí)不需要關(guān)心開(kāi)發(fā)文檔中的基礎(chǔ)支持、用戶(hù)管理和推廣支持3部分,這些都是高級(jí)接口中的內(nèi)容,只有微信認(rèn)證的服務(wù)號(hào)才能使用。3.2.2明確請(qǐng)求校驗(yàn)流程對(duì)于本節(jié)要開(kāi)發(fā)的請(qǐng)求校驗(yàn)程序,只需要參考“新手接入”中的“接入指南”部分。從接入指南中可以了解到,要使用公眾平臺(tái)的開(kāi)發(fā)模式,必須先填寫(xiě)接口配置信息中的URL和Token,這就要求開(kāi)發(fā)者擁有公網(wǎng)服務(wù)器資源,并且按照開(kāi)發(fā)者文檔完成相關(guān)程序的開(kāi)發(fā),其實(shí)這些要求已經(jīng)在3.1.1節(jié)中詳細(xì)介紹過(guò)了。接入指南的第二步“驗(yàn)證URL有效性”部分詳細(xì)說(shuō)明了請(qǐng)求校驗(yàn)的作用和流程,如圖3-2所示。圖3-2請(qǐng)求校驗(yàn)的作用和流程也就是說(shuō),我們要開(kāi)發(fā)的請(qǐng)求校驗(yàn)程序必須能夠處理HTTPGET請(qǐng)求,而且要對(duì)請(qǐng)求者進(jìn)行身份校驗(yàn),以確保請(qǐng)求來(lái)自微信服務(wù)器。請(qǐng)求校驗(yàn)流程如下:1)獲取HTTPGET請(qǐng)求中的4個(gè)參數(shù):signature、timestamp、nonce和echostr;2)將token、timestamp和nonce3個(gè)參數(shù)按字典序排序;3)將排序后的3個(gè)參數(shù)按順序拼接成一個(gè)字符串,并對(duì)該字符串進(jìn)行sha1加密;4)將sha1加密后的字符串與參數(shù)signature進(jìn)行對(duì)比,如果相等則證明該請(qǐng)求來(lái)自微信服務(wù)器,需要原樣返回參數(shù)echostr。提示步驟2中提到的參數(shù)token不是從GET請(qǐng)求中獲取的,而是由開(kāi)發(fā)者任意指定的。在公眾平臺(tái)啟用開(kāi)發(fā)模式時(shí),也會(huì)要求填寫(xiě)token,這兩處token要求保持一致。3.2.3請(qǐng)求校驗(yàn)流程分析在Java中,處理HTTPGET請(qǐng)求就需要用到Servlet(當(dāng)然也可以使用JSP或者Struts,但JSP和Struts本質(zhì)上也是Servlet),在Servlet中接收參數(shù)signature、timestamp、nonce和echostr的代碼如下所示:Stringsignature=request.getParameter("signature");

Stringtimestamp=request.getParameter("timestamp");

Stringnonce=request.getParameter("nonce");

Stringechostr=request.getParameter("echostr");要對(duì)token、timestamp和nonce3個(gè)參數(shù)按字典排序,可以使用java.util.Arrays類(lèi)的sort()方法;而將排序后的結(jié)果拼接成一個(gè)字符串,可以使用String類(lèi)的contat()方法。實(shí)現(xiàn)代碼如下://對(duì)token、timestamp和nonce按字典排序

String[]paramArr=newString[]{token,timestamp,nonce};

Arrays.sort(paramArr);

//將排序后的結(jié)果拼接成一個(gè)字符串

Stringcontent=paramArr[0].concat(paramArr[1]).concat(paramArr[2]);對(duì)拼接后的字符串content進(jìn)行sha1加密可以使用java.security.MessageDigest類(lèi)來(lái)實(shí)現(xiàn),代碼如下:MessageDigestmd=MessageDigest.getInstance("SHA-1");

//對(duì)拼接后的字符串進(jìn)行sha1加密

byte[]digest=md.digest(content.getBytes());可以看到,進(jìn)行sha1加密后的結(jié)果是一個(gè)byte數(shù)組,而我們需要的是一個(gè)字符串。所以,還需要通過(guò)下面的方法將byte數(shù)組轉(zhuǎn)換成字符串:/**

*將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制字符串

*

*@parambytearray

*@return

*/

privatestaticStringbyteToStr(byte[]bytearray){

StringstrDigest="";

for(inti=0;i<bytearray.length;i++){

strDigest+=byteToHexStr(bytearray[i]);

}

returnstrDigest;

}

/**

*將字節(jié)轉(zhuǎn)換為十六進(jìn)制字符串

*

*@paramib

*@return

*/

privatestaticStringbyteToHexStr(byteib){

char[]Digit={'0','1','2','3','4','5','6','7','8','9','A','B',

'C','D','E','F'};

char[]ob=newchar[2];

ob[0]=Digit[(ib>>>4)&0X0F];

ob[1]=Digit[ib&0X0F];

Strings=newString(ob);

returns;

}調(diào)用上面的byteToStr()方法將sha1加密后的byte數(shù)組轉(zhuǎn)換成字符串,如下所示:Stringciphertext=byteToStr(digest);最后,還要將字符串ciphertext與參數(shù)signature進(jìn)行比較,如果相等,則將參數(shù)echostr原樣返回。實(shí)現(xiàn)代碼如下:PrintWriterout=response.getWriter();

//請(qǐng)求校驗(yàn),若校驗(yàn)成功則原樣返回echostr

if(ciphertext.equals(signature.toUpperCase())){

out.print(echostr);

}

out.close();3.2.4請(qǐng)求校驗(yàn)程序的實(shí)現(xiàn)接下來(lái),將為讀者介紹使用MyEclipse開(kāi)發(fā)請(qǐng)求校驗(yàn)程序的完整步驟。1)首先,新建一個(gè)名為chapter-03的Web項(xiàng)目,在項(xiàng)目的src下創(chuàng)建一個(gè)普通Java類(lèi)SignUtil,該類(lèi)對(duì)請(qǐng)求校驗(yàn)流程的實(shí)現(xiàn)進(jìn)行了封裝,方便在Servlet中調(diào)用。SignUtil類(lèi)的代碼如下:packageorg.liufeng.course.util;

importjava.security.MessageDigest;

importjava.security.NoSuchAlgorithmException;

importjava.util.Arrays;

/**

*請(qǐng)求校驗(yàn)工具類(lèi)

*

*@authorliufeng

*@date2013-09-01

*/

publicclassSignUtil{

//與開(kāi)發(fā)模式接口配置信息中的Token保持一致

privatestaticStringtoken="weixinCourse";

/**

*校驗(yàn)簽名

*

*@paramsignature微信加密簽名

*@paramtimestamp時(shí)間戳

*@paramnonce隨機(jī)數(shù)

*@return

*/

publicstaticbooleancheckSignature(Stringsignature,Stringtimestamp,Stringnonce){

//對(duì)token、timestamp和nonce按字典排序

String[]paramArr=newString[]{token,timestamp,nonce};

Arrays.sort(paramArr);

//將排序后的結(jié)果拼接成一個(gè)字符串

Stringcontent=paramArr[0].concat(paramArr[1]).concat(paramArr[2]);

Stringciphertext=null;

try{

MessageDigestmd=MessageDigest.getInstance("SHA-1");

//對(duì)拼接后的字符串進(jìn)行sha1加密

byte[]digest=md.digest(content.toString().getBytes());

ciphertext=byteToStr(digest);

}catch(NoSuchAlgorithmExceptione){

e.printStackTrace();

}

//將sha1加密后的字符串與signature進(jìn)行對(duì)比

returnciphertext!=null?ciphertext.equals(signature.toUpperCase()):false;

}

/**

*將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制字符串

*

*@parambyteArray

*@return

*/

privatestaticStringbyteToStr(byte[]byteArray){

StringstrDigest="";

for(inti=0;i<byteArray.length;i++){

strDigest+=byteToHexStr(byteArray[i]);

}

returnstrDigest;

}

/**

*將字節(jié)轉(zhuǎn)換為十六進(jìn)制字符串

*

*@parammByte

*@return

*/

privatestaticStringbyteToHexStr(bytemByte){

char[]Digit={'0','1','2','3','4','5','6','7','8','9','A',

'B','C','D','E','F'};

char[]tempArr=newchar[2];

tempArr[0]=Digit[(mByte>>>4)&0X0F];

tempArr[1]=Digit[mByte&0X0F];

Strings=newString(tempArr);

returns;

}

}2)創(chuàng)建一個(gè)Servlet類(lèi),用于接收GET請(qǐng)求傳遞的4個(gè)參數(shù),并調(diào)用SignUtil工具類(lèi)中封裝的checkSignature()方法進(jìn)行請(qǐng)求校驗(yàn),如果校驗(yàn)成功,則將接收到的參數(shù)echostr原樣返回。該Servlet類(lèi)的實(shí)現(xiàn)如下:

packageorg.liufeng.course.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importorg.liufeng.course.util.SignUtil;

/**

*請(qǐng)求處理的核心類(lèi)

*

*@authorliufeng

*@date2013-09-01

*/

publicclassCoreServletextendsHttpServlet{

privatestaticfinallongserialVersionUID=4440739483644821986L;

/**

*請(qǐng)求校驗(yàn)(確認(rèn)請(qǐng)求來(lái)自微信服務(wù)器)

*/

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

//微信加密簽名

Stringsignature=request.getParameter("signature");

//時(shí)間戳

Stringtimestamp=request.getParameter("timestamp");

//隨機(jī)數(shù)

Stringnonce=request.getParameter("nonce");

//隨機(jī)字符串

Stringechostr=request.getParameter("echostr");

PrintWriterout=response.g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論