专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 企业信息化

Force.com微信开发系列(5)自定义菜单进阶及语音识别

发布时间:2010-06-06 16:59:05 文章来源:www.iduyao.cn 采编人员:星星草
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

3楼产奶的公牛
求问:,开发者文档中提供的:网页授权获取用户基本信息 这个接口是什么作用,用在什么场景??
Re: JohnsonWang
@产奶的公牛,你好!用在比如你的微网站想访问用户在微信里的私人新思,例如昵称、性别、国籍等等,稍后文章会有详细介绍。
2楼yaobo
例如网站已经记录了用户的数据保存到数据库,下一次用户来访问网站。怎样做到,不需要再次授权,直接读本地的库,直接登陆成功? 跪求大神回复...谢谢
Re: JohnsonWang
@yaobo,你好,称不上大神,回答供参考,有多种方式,主要看你怎么提供服务,举例如下:,1. 用户点击微信菜单进入你的网站,此时腾讯发给你的微信后台服务器的XML文里带上了用户的OpenID,可以以此来识别用户;,2. 用户通过发送特定文字到微信,你的微信后台服务器也可以鉴别此用户的OpenID,从而提供定制化的URL通过消息回复给该用户,用户点击此URL即可完成省份鉴别。
1楼冀州刺史
不错
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: