语音识别接口的基本介绍

注意:

由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立即生效,对已关注用户需要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相关推荐

  1. 夺命雷公狗---PHP开发APP接口---1(手动编写json)

    在php里面按照json的方式产生json数据 接口的定义 <?phpclass Ren{/***按json方式输出通信数据*param integer $code状态码*param strin ...

  2. 夺命雷公狗---微信开发26----客服消息接口基础和推送视频

    我们按照上一课的套路继续改写下index.php即可实现,代码如下所示: <?php /*** wechat php test*///define your token require_once ...

  3. 夺命雷公狗ThinkPHP项目之----商城1项目整体架构

    夺命雷公狗项目之---商城 本人准备更新套基于tp下开发的商城的项目,为啥呢?原因和简单,本人没使用过框架开发商城,准备用一些时间来开发套B2C的商城系统.. 项目规划: 1:项目整体架构 用户部分 ...

  4. 夺命雷公狗之后台登录一条龙模版

    今天用bootstrap开发了套后台登录和管理后台管理的模版,有需要的朋友可以拿去用用. 或者可以@夺命雷公狗进行技术交流.... 下载地址: http://pan.baidu.com/s/1kVff ...

  5. 微信开发:微信js_sdk 分享,前端部分(二)

    微信开发:微信js-sdk前端分享,代码如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> ...

  6. 夺命雷公狗-----React---5--props对象的传递

    提示:props的值是不可以改变的... <!DOCTYPE html> <html lang="en"> <head><meta cha ...

  7. 微信鉴权服务器地址,微信开发之微信授权登录

    本篇教程探讨了微信开发之微信授权登录,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作, ...

  8. php 微信 语音,PHP语言微信开发:微信录音临时转永久存储

    本文主要向大家介绍了PHP语言微信开发:微信录音临时转永久存储,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 最近做开发的时候碰到了这个问题,甲方希望用户在微信端的录音能够一直有效.就 ...

  9. 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器

    微信开发 - 调用微信上传图片接口,并保存到自己的服务器 整体思路是这样的: 1.先把手机上的图片上传到微信服务器,然后返回一个图片ID 2.在通过后台根据ID从微信后台拿到流,保存到服务器 前几个步 ...

最新文章

  1. 我发现了个Python黑魔法,执行任意代码都会自动念上一段「平安经」
  2. 神经网络训练细节之batch normalization
  3. egret键盘事件监听
  4. OSI/RM 开放系统互联参考模型
  5. Java8 Stream详解~归约(reduce)
  6. python输入一个整数列表 列表元素为18_Python-18 (高级变量1--列表)
  7. 全渠道java b2b b2c o2o平台
  8. WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题
  9. 超级搜索术5-商业变现/生活便捷
  10. Symbian S60 自动通话录音
  11. 适合高要求应用的高性能MEMS IMU解决方案
  12. 倍福PLC模拟量输入模块的使用方法
  13. spring boot 配置默认数据连接池 HiKariCP
  14. OKR:打破组织中的沟通壁垒
  15. 献给母亲节的技术大礼包
  16. TCP 包完整性检验
  17. 学习Qt使用GDI+绘图笔记
  18. Linux下RabbitMq的安装以及后台管理页面的安装
  19. 浏览大图时鼠标感应控制层滚动条的移动
  20. win7电脑如何提高开机速度?

热门文章

  1. 买房贷款被拒,该如何补救?
  2. 许家印帮贾跃亭广州拿地造车,这是要翻身的节奏吗?
  3. 职业相关课程学习笔记
  4. asr1601芯片平台实现ssl加密的websocket
  5. nodejs写html文件路径,Nodejs读取文件时相对路径的正确写法(使用fs模块)
  6. python counter_教你Python的collections.Counter类型
  7. winform 鼠标 静止时间_赢得电竞的奥秘,你需要一块好鼠标垫
  8. caj文件浏览器_caj文件怎么转换成pdf文件?试试这样操作,3步成功转换
  9. table tr省略后鼠标移入显示相应信息_中考来了,人机对话、信息技术考试要求看过来...
  10. 计算信源熵和香农编码C语言,信息论与编码课程设计报告-统计信源熵与香农编码.pdf...