徐曉



摘要:微信公眾平臺是一個功能強大且操作方便的應用平臺,它被許多用戶認可和喜愛。微信公眾號的相關開發中最常見的,也是用戶最喜歡使用的功能是自定義菜單。互聯網上對于微信公眾平臺開發的資料有許多,大部分資料都是關于Java和PHP技術,本文采用Java技術開發了一個Web網頁設計與開發公眾號,主要研究如何用代碼實現菜單的生成和響應。
關鍵詞:微信公眾號;Java技術;自定義菜單;微信服務器;事件響應
中圖分類號:TP311.1? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)21-0111-02
開放科學(資源服務)標識碼(OSID):
當今智能手機已經成為用戶生活的必需物品,微信是手機中使用頻率最高的軟件之一。微信公眾號廣泛應用在許多的領域中,它的應用價值不可估計。為了提升用戶之間交流的方便性、滿意度和體驗感,微信公眾號必須要重視設計和開發互動功能。微信公眾號現在有服務號和訂閱號兩大類,訂閱號非常適合用來對移動教學平臺的開發與建設。微信公眾號不需要進行獨立的App開發,只要在后臺進行二次開發就可以實現很多功能[1]。微信公眾號的相關開發中最常見的也是用戶最喜歡使用的功能是自定義菜單,因為菜單只需要點一下就可以獲取需要的信息,無須用戶手動輸入關鍵字,用戶體驗相對來說比較好。在普通的編輯模式下可以直接實現在后臺進行編輯和設計自定義菜單,在開發模式設計自定義菜單需要自己編寫代碼實現。開發模式的自定義菜單能夠幫助公眾號豐富界面,讓用戶更好更快地理解公眾號的功能。在開發者模式下實現自定義菜單有兩種方法,第一種方法不需要編寫任何代碼,可以用自帶的網頁測試工具postjson字符串生成菜單;第二種實現菜單生成的方法是在開發中編寫代碼。只要是支持動態網頁開發的編程語言都能用來對微信公眾號平臺進行開發,互聯網上對于微信公眾平臺開發的資料有許多,大部分資料都是關于Java和PHP技術,因而開發起來比較容易。本文采用Java技術開發了一個Web網頁設計與開發的公眾號,主要研究如何用代碼實現菜單生成和響應。
1微信公眾號
微信公眾平臺是一個功能強大且操作方便的應用平臺,利用微信公眾號可以完成和特定群體的文字、聲音和視頻等信息的全方位交流和互動[2]。微信訂閱號適用于個人和組織,媒體功能較突出,因而訂閱號非常適合用來對移動教學平臺的開發與建設,在公眾號教學平臺上可以和用戶實現文本、語音、視頻、圖片的多方位交流與互動,提高教學時效。用戶可以關注自己喜愛的公眾號進行閱讀和學習。
2 用Java技術進行微信公眾平臺開發
互聯網上對于微信公眾平臺開發的資源有許多,例如:PHP、Java、ASP.NET 、Ruby、Python、Note.js等。開發人員可以選擇自己最擅長的編程語言進行開發,網絡上對于微信公眾平臺開發的大部分資料都是關于Java和PHP技術。本文采用的是Java的開發框架,采用Java進行微信公眾平臺開發至少需要掌握Java基礎知識、JSP、Servlet、Javabean和JDBC(操作數據庫) [3]。公眾平臺測試賬號擁有微信公眾平臺很多的接口,本文使用公眾平臺測試賬號開發自定義菜單,比較方便,如圖1所示。
3 代碼實現菜單的生成過程
微信公眾號自定義菜單分為二級,一級菜單最多可以含有3個菜單項,每個一級菜單項下的二級菜單項最多能有5個,任何一個菜單項都含有一個關鍵值。當我們單擊任何一個菜單項的時候,將會把該菜單項的關鍵值按事件推送的形式提交給后臺處理程序。本文以一個案例來講解自定義菜單的生成和響應過程。自定義菜單功能實現以后,讓用戶之間可以更加便捷的方式進行“簡單的對話式”交互。
3.1 自定義菜單接口的按鈕類型
自定義菜單接口有多種類型按鈕,如表1所示,本文主要介紹菜單中view 和 click 兩種類型的事件。
3.2 創建view 類型和click類型兩個實體
查閱公眾平臺的API文檔,可以看到自定義菜單的json結構示例,本文依據json結構示例,定義兩個菜單項的json代碼,如表2所示。一個是click類型,另一個是view類型,click類型的按鈕有type、name和key三個屬性,而view類型的按鈕有type、name和url三個屬性。
從上面的json代碼可以分析得出,所有菜單都有一個相同的name屬性。兩種類型的菜單不僅僅是type值不同,而且它們的屬性也存在差異。click類型的菜單包含了key屬性,而view類型的菜單沒有key屬性,與之對應的是url屬性。根據key值來判斷用戶點擊了什么類型的click菜單項,然后會將該菜單項的key值以事件推送的形式提交給后臺處理程序進行處理。view類型的菜單沒有key屬性。為了方便我們在自定義菜單中對 json 的封裝,需要創建view類型和click類型兩個實體。代碼如圖2和圖3所示。
3.3 調用生成自定義菜單的接口發送到微信服務器
自定義菜單接口能進一步拓展開發者的施展空間,也能為公眾賬號的信息展示空間提供更多可能性。調用view和click兩個實體封裝json字符串menujson,最后調用發送方法將json發送給騰訊服務器,其實就是向地址https://api.weixin.qq.com/cgi-bin/menu/create?access_token= ACCESS_TOKEN用POST方法提交一個JSON格式的菜單字符串。但是這里需要用到賬號生成的token,本文直接用從微信公眾平臺中取到access_token憑證,根據這個憑證,把拼裝的json格式的菜單數據以POST方法提交[4]。最終運行返回結果ok即可,生成的自定義菜單如圖4所示。
3.4 菜單事件響應
自定義菜單的創建工作已經完成,菜單事件推送在微信公眾號開發中也是屬于比較常用的一個功能,就是用戶點擊菜單之后,微信會將事件推送給接口程序。接下來就是識別用戶點擊的是哪個菜單,以及做出響應。當消息類型是MsgType=event自定義響應事件且Event=CLICK點擊事件時,就能說明這是一個點擊菜單事件。依據菜單的自定義的key值,就可以判斷用戶點擊了什么菜單項,從而推送不同消息,它可以返回文本、圖片、語音、視頻等消息[5],本文展示一個簡單示例,單擊聯系客服菜單以后,返回一段文本消息,效果見圖5所示。
程序如下:
if(map.get("Event").equals("CLICK")){
String eventKey = map.get("EventKey");
if(eventKey.equals("text")) {
result = buildTextMessage(map, "我們的聯系方式是:\n微信客服號:1708\nQQ客服號:1708\n感謝關注1708教育");
}}
4 結語
微信公眾號廣泛應用在許多的領域中,它的應用價值不可估計。微信公眾平臺具有自定義菜單的功能,本文主要研究了自定義菜單簡單的開發應用,開發者能夠采用編輯模式、開發模式給微信公眾賬號的會話頁面按需添加自定義菜單,當用戶單擊菜單中的某一菜單項時,就能調出相關的網頁鏈接或者相
關的回復信息。用戶不再需要通過輸入關鍵詞來觸發回復,直接點擊相應的菜單項就可以查看有關的內容。自定義菜單接口能進一步拓展開發者的施展空間,也能為公眾賬號的信息展示提供更多可能性。自定義菜單功能實現以后,其便捷的操作和流暢的體驗,可以讓用戶之間以更加便捷的方式進行“簡單的對話式”交互。
參考文獻:
[1] 趙建君,李宛珊,趙鑫恪,等.《數字媒體技術》課程微信公眾學習平臺的建設[J].當代教育實踐與教學研究,2018(9):41-42.
[2] 程超,李國林,李建英.微信公眾平臺下的微課程開發與應用——以社區科技教育活動為例[J].云南開放大學學報,2017,19(1):10-13,19.
[3] 鮑筱曄,梁正禮.基于微信平臺的移動教學模式研究[J].微型電腦應用,2019,35(12):73-77.
[4] 陳立富,徐建麗.基于微信公眾號的微課平臺的構建與實踐——以大學體育為例[J].職教通訊,2017,32(9):64-66.
[5] 龍紅.基于微信公眾平臺的圖形圖像處理課程資源開發與應用[J].電子技術與軟件工程,2019(18):42-43.
【通聯編輯:張薇】