Force.com微信開發系列(五)自定義菜單進階及語音識別


在上文里我們介紹了如何通過Force.com平台里為微信賬號添加自定義菜單,本文里我們將進一步介紹如何查詢菜單以及刪除菜單的相關知識,最后會介紹微信平台如何進行語音識別的相關技術。

 

查詢菜單

與創建菜單類似,查詢菜單有自己的接口,其中ACESS_TOKEN需要通過前文介紹到的接口獲取,通常2小時后會失效:

https://api.weixin.qq.com/cgi-bin/menu/get?access_token=[ACCESS_TOKEN]

為此首先通過前文介紹到的獲取Access_Token,獲得類似如下的真實請求URL:

https://api.weixin.qq.com/cgi-bin/menu/get?access_token=RKkFQMHmXuTWPoCzEB9lYY_bksaBzxqKqE5FG0nW_74YXREheG3IyIoz9YvebQLI_6Vq9mD_rVD1iSXC1JzaBg

在IE等瀏覽器里運行該鏈接,將相應文件保存下來打開即可看到微信賬號當前的菜單結構(通過不同瀏覽器查看可能會出現顯示亂碼問題等,這是瀏覽器的默認編碼顯示問題所致,下載下來通過記事本查看即可看到對應的真實文字):

image

 

刪除菜單

使用接口創建自定義菜單后,開發者還可以使用接口刪除當前使用的自定義菜單,刪除菜單的接口如下:

https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=[ACCESS_TOKEN]

正確時的返回JSON數據包如下:

{“errcode”:0, “errmsg”:”ok”}

 

語音識別

微信公眾賬號通過微信認證后可以獲得語音識別接口,開啟語音識別功能以后,用戶每次發送語音給微信賬號時,微信會在推送的語音消息XML數據包中增加一個Recognition字段,該字段為依雲識別出的文本內容。如下是開啟語音識別后的語音XML數據包示例:

 1 <xml>
 2 <ToUserName><![CDATA[toUser]]></ToUserName>
 3 <FromUserName><![CDATA[fromUser]]></FromUserName>
 4 <CreateTime>1357290913</CreateTime>
 5 <MsgType><![CDATA[voice]]></MsgType>
 6 <MediaId><![CDATA[media_id]]></MediaId>
 7 <Format><![CDATA[Format]]></Format>
 8 <Recognition><![CDATA[騰訊微信團隊]]></Recognition>
 9 <MsgId>1234567890123456</MsgId>
10 </xml>

 

每個參數的說明參見下圖:

image
 

前文Force.com微信開發系列(三)申請測試賬號及回復圖文消息中已經包含了如何解析該節點的值,並且在相應的IncomingMsg類里面也包含了該屬性,接下來需要做的是在doPost方法里的判斷消息類型部分添加對聲音類型消息的處理代碼:

1 else if(msgType.equals('voice')){
2     rtnMsg = handleVoice(inMsg);
3 }

 

這里我們識別消息類型為voice類型后調用handleVoice方法並傳遞IncomingMsg對象來處理聲音,handleVoice方法代碼如下:

1 private static String handleVoice(IncomingMsg msg){
2         String result = '您說了: ' + msg.recognition;
3         return composeTextReply(msg, result);
4 }

 

代碼讀取了騰訊平台識別后傳遞過來的XML問中Recognition節點的內容並返回給用戶,保存代碼后嘗試發送語音給微信測試賬號,運行效果如下:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM