首页 > 热点 > 微信 > 正文

鱼渔微信开发初级教程 接收语音消息

2020-03-22 16:54:15
字体:
来源:转载
供稿:网友
  • 首先请下载并安装鱼渔微信开发包。

    接收语音消息的官方文档参见:接收普通消息,配合本次课程,开发包中会专门有一个教学文件tool/send_and_response.php,代码如下:

    <?phprequire_once dirname(__FILE__) . '/../common/Common.php';$account = 'YUYU';$options = array('token'=>WEIXIN_TOKEN,'appid'=>$GLOBALS['APP_INFO'][$account]['appId'],'appsecret'=>$GLOBALS['APP_INFO'][$account]['appSecret'],'debug'=>(DEBUG == 'true')?true:false,'logcallback'=>'yuyuLog');$weObj = new YuyuWeChat($options);if (!$weObj->debug) $weObj->valid();$type = $weObj->getRev()->getRevType();switch($type) {	case Wechat::MSGTYPE_TEXT:			$response = $weObj->getRevContent();			$weObj->text($response)->reply_exit();			break;	case Wechat::MSGTYPE_IMAGE:			$response = $weObj->getRevPic();			$weObj->text($response)->reply_exit();			break;	case Wechat::MSGTYPE_VOICE:			$response = $weObj->getRevVoice();			$response = json_encode($response);			$weObj->text($response)->reply_exit();			break;				default:			$weObj->text("help info")->reply();}?>
    注意上述代码里的json_encode是php的一个函数,把数组转换为json格式的字符串,然后通过text函数,组装成xml形式的文本消息,返回给微信服务器,详见下面的日志记录。当然返回一个json字符串对用户没有任何意义,这里只是便于大家学习,产品应用中应该参照【八】鱼渔微信开发初级教程 - 发送并显示多媒体文件 的说明,直接向用户展示语音条。getRevVoice函数出自开发包中的common/wechat-php-sdk/wechat.html' target='_blank'>class.php:

    	/**	 * 获取接收语言推送	 */	public function getRevVoice(){		if (isset($this->_receive['MediaId'])){			return array(				'mediaid'=>$this->_receive['MediaId'],				'format'=>$this->_receive['Format'],			);		} else 			return false;	}	
    判断接收消息中是否包含MediaId,如果有,返回包含MediaId和Format的数组,如果没有,返回fasle。

    在run.php的最前面加上:

    require_once dirname(__FILE__) . '/tool/send_and_response.php';exit;
    在手机微信里以对讲机的方式上传一句语音,结果如下:

    日志如下:

    **********************[2014-04-15 17:10:51 118] [6412]**********************[wechat-php-sdkwechat.class.php] [194] [getRev]<xml>  <ToUserName><![CDATA[gh_7eb72a2f76ab]]></ToUserName>  <FromUserName><![CDATA[oL5xDuNHKJ_Fwv9qzR-GneFWhY08]]></FromUserName>  <CreateTime>1397553054</CreateTime>  <MsgType><![CDATA[voice]]></MsgType>  <MediaId><![CDATA[iCyns87xVYOdnicxdesQ47QnkoObi05hINQMuCJA9VtVZmHrUgkLwdHZPYYncJxW]]></MediaId>  <Format><![CDATA[amr]]></Format>  <MsgId>6002444661555089771</MsgId>  <Recognition><![CDATA[]]></Recognition></xml>**********************[2014-04-15 17:10:51 119] [6412]**********************[wechat-php-sdkwechat.class.php] [508] [reply]<xml>  <ToUserName><![CDATA[oL5xDuNHKJ_Fwv9qzR-GneFWhY08]]></ToUserName>  <FromUserName><![CDATA[gh_7eb72a2f76ab]]></FromUserName>  <MsgType><![CDATA[text]]></MsgType>  <Content><![CDATA[{"mediaid":"iCyns87xVYOdnicxdesQ47QnkoObi05hINQMuCJA9VtVZmHrUgkLwdHZPYYncJxW","format":"amr"}]]></Content>  <CreateTime><![CDATA[1397553051]]></CreateTime>  <FuncFlag><![CDATA[0]]></FuncFlag></xml>
    注意微信内部语音采用amr的格式,适合手机网络应用。

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表