夺命雷公狗---微信开发39----微信语言识别接口1
语音识别接口的基本介绍
注意:
由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立即生效,对已关注用户需要24小时生效,开发者可以从新关注帐号进行测试。
我们可以在测试号下方的体验接口权限表里面找到“接收语音识别结果”,如下图所示
现在这里是显示的关闭,就是开启,如果想使用,那么就必“关闭”。
点击一下开启后,他就会问你是否关闭,所以这里的意思是相反的,如图所示:
然后再点击一下确定即可关闭。
不过我们现在要对他进行开发所以这里就要显示关闭这两个字,然后点击“接收语音识别结果”即可进入手册详情页,如下图所示:
我们先来个简单的,index.php代码如下所示:
<?php /*** wechat php test*///define your token require_once "common.php"; //这里是引入curl发送函数的类 require_once 'WeChat.class.php'; define("TOKEN", "twgdh");//这里让这个类继承了curl发送参数的类 class wechatCallbackapiTest extends WeChat {public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,the best way is to check the validity of xml by yourself */// 使用simplexml技术对xml进行解析 // libxml_disable_entity_loader(true), 是从安全性考虑,为了防止xml外部注入,//只对xml内部实体内容进行解析libxml_disable_entity_loader(true);//加载 postStr 字符串$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();global $tmp_arr;//根据接收到的消息类型,来进行分支处理(switch)switch($postObj->MsgType){case 'event':if($postObj->Event == 'subscribe'){$contentStr = "欢迎关注leigood微信测试号噢";$resultStr = sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time, $contentStr);echo $resultStr; }//响应用户的点击事件if($postObj->Event == 'CLICK'){if($postObj->EventKey == 'V1001_TODAY_MUSIC'){ //自定义菜单里面有很多个,这里key是自定义的//这里主要写自己想要的业务逻辑$contentStr = "夺命雷公狗欢迎您来到编程世界";$resultStr = sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time, $contentStr);echo $resultStr; }}break;case 'text': //回复文本模块//这里开始测试客服消息接口了if($keyword == '文本'){//获取tokenrequire 'get_token.php';$contentStr = '这是客服接口的回复,我们可以帮助您什么?';//对发送的内容进行urlencode编码,防止中文乱码$contentStr = urlencode($contentStr);//到时候我们我发送的内容我们放到一个数组里面去了$content_arr = array('content'=>"{$contentStr}");//这里的意思是将来我要发送消息给这个用户$reply_arr = array('touser'=>"{$fromUsername}",'msgtype'=>'text','text'=>$content_arr);//下一步就是将编码转成规定的json格式$post = json_encode($reply_arr);//url解码,如果不解码他将会发来一段二进制代码$post = urldecode($post);$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={$access_token}";//这里我们来使用类的继承机制,来简化代码$this -> http_request($url,$post);//这里是可以回复多条消息的,只需要在执行下这个函数即可//$this -> http_request($url,$post); }else{$contentStr = '您输入的格式有误';$resultStr = sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time, $contentStr);echo $resultStr;}break;case 'voice';//取出用户说的内容$recognition = $postObj->Recognition;$contentStr = "您刚才说的是:".$recognition;$resultStr = sprintf($tmp_arr['text'], $fromUsername, $toUsername, $time, $contentStr);echo $resultStr;break;}}else {echo "";exit;}}private function checkSignature(){// you must define TOKEN by yourselfif (!defined("TOKEN")) {throw new Exception('TOKEN is not defined!');}$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);// use SORT_STRING rulesort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}} }//如果这段代码放在上面,那程序将会报错,因为继承的问题,会显示类没有找到 $wechatObj = new wechatCallbackapiTest(); //当接入成功后,请注销这句话,否则,会反复验证。 //$wechatObj->valid(); //添加响应请求的语句 $wechatObj->responseMsg();?>
核心代码如下:
然后您给公众号发送语音,他即可按文字形式对您进行返回。
温馨提示:每次他以文字返回的时候她会在后面加多一个“!”号
转载于:https://www.cnblogs.com/leigood/p/5240773.html
夺命雷公狗---微信开发39----微信语言识别接口1相关推荐
- 夺命雷公狗---PHP开发APP接口---1(手动编写json)
在php里面按照json的方式产生json数据 接口的定义 <?phpclass Ren{/***按json方式输出通信数据*param integer $code状态码*param strin ...
- 夺命雷公狗---微信开发26----客服消息接口基础和推送视频
我们按照上一课的套路继续改写下index.php即可实现,代码如下所示: <?php /*** wechat php test*///define your token require_once ...
- 夺命雷公狗ThinkPHP项目之----商城1项目整体架构
夺命雷公狗项目之---商城 本人准备更新套基于tp下开发的商城的项目,为啥呢?原因和简单,本人没使用过框架开发商城,准备用一些时间来开发套B2C的商城系统.. 项目规划: 1:项目整体架构 用户部分 ...
- 夺命雷公狗之后台登录一条龙模版
今天用bootstrap开发了套后台登录和管理后台管理的模版,有需要的朋友可以拿去用用. 或者可以@夺命雷公狗进行技术交流.... 下载地址: http://pan.baidu.com/s/1kVff ...
- 微信开发:微信js_sdk 分享,前端部分(二)
微信开发:微信js-sdk前端分享,代码如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> ...
- 夺命雷公狗-----React---5--props对象的传递
提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head><meta cha ...
- 微信鉴权服务器地址,微信开发之微信授权登录
本篇教程探讨了微信开发之微信授权登录,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作, ...
- php 微信 语音,PHP语言微信开发:微信录音临时转永久存储
本文主要向大家介绍了PHP语言微信开发:微信录音临时转永久存储,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 最近做开发的时候碰到了这个问题,甲方希望用户在微信端的录音能够一直有效.就 ...
- 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器
微信开发 - 调用微信上传图片接口,并保存到自己的服务器 整体思路是这样的: 1.先把手机上的图片上传到微信服务器,然后返回一个图片ID 2.在通过后台根据ID从微信后台拿到流,保存到服务器 前几个步 ...
最新文章
- 我发现了个Python黑魔法,执行任意代码都会自动念上一段「平安经」
- 神经网络训练细节之batch normalization
- egret键盘事件监听
- OSI/RM 开放系统互联参考模型
- Java8 Stream详解~归约(reduce)
- python输入一个整数列表 列表元素为18_Python-18 (高级变量1--列表)
- 全渠道java b2b b2c o2o平台
- WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题
- 超级搜索术5-商业变现/生活便捷
- Symbian S60 自动通话录音
- 适合高要求应用的高性能MEMS IMU解决方案
- 倍福PLC模拟量输入模块的使用方法
- spring boot 配置默认数据连接池 HiKariCP
- OKR:打破组织中的沟通壁垒
- 献给母亲节的技术大礼包
- TCP 包完整性检验
- 学习Qt使用GDI+绘图笔记
- Linux下RabbitMq的安装以及后台管理页面的安装
- 浏览大图时鼠标感应控制层滚动条的移动
- win7电脑如何提高开机速度?
热门文章
- 买房贷款被拒,该如何补救?
- 许家印帮贾跃亭广州拿地造车,这是要翻身的节奏吗?
- 职业相关课程学习笔记
- asr1601芯片平台实现ssl加密的websocket
- nodejs写html文件路径,Nodejs读取文件时相对路径的正确写法(使用fs模块)
- python counter_教你Python的collections.Counter类型
- winform 鼠标 静止时间_赢得电竞的奥秘,你需要一块好鼠标垫
- caj文件浏览器_caj文件怎么转换成pdf文件?试试这样操作,3步成功转换
- table tr省略后鼠标移入显示相应信息_中考来了,人机对话、信息技术考试要求看过来...
- 计算信源熵和香农编码C语言,信息论与编码课程设计报告-统计信源熵与香农编码.pdf...