微信公众平台消息接口开发(24)图片识别之人脸识别API
微信公众平台开发模式 微信 公众平台 消息接口 开发模式 企业微信公众平台 图片识别 人脸识别 API
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/archive/2013/03/13/weixin-if24-face-recognize-api.html
一、微信图片获取
首先要获得用户发过来的图片,微信公众平台支持接收图片,一条图片消息的格式如下:
<xml> <ToUserName><![CDATA[gh_13d1a3a7x46a]]></ToUserName> <FromUserName><![CDATA[oKaHDjt60aAyPvQmUX3ddyix_zG8]]></FromUserName> <CreateTime>1357543196</CreateTime> <MsgType><![CDATA[image]]></MsgType> <PicUrl><![CDATA[http://mmsns.qpic.cn/mmsns/L4qjYtOibummV7J7pbpWKZTiaRoeicicD151CGsQ5AW761Kmn5Hk83x5lQ/0]]></PicUrl> <MsgId>5830603629728080261</MsgId> </xml>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号 FromUserName 消息发送方微信号 CreateTime 消息创建时间 MsgType 消息类型;图片消息为image PicUrl 图片链接地址 MsgId 消息ID号
这里PicUrl就是图片URL
二、发送图片到接口
在微信接口中代码中获取图片方法如下:接收消息类型中分离出图片类型
public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; logger("R ".$postStr); //extract post data if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) { case "image": $resultStr = $this->receiveImage($postObj); break; } logger("T ".$resultStr); echo $resultStr; }else { echo ""; exit; } }
而识别接口的调用方法如下
http://api2.sinaapp.com/recognize/picture/?appkey=0020120430&appsecert=fa6095e123cd28fd&reqtype=text&keyword=http://gb.cri.cn/mmsource/images/2010/10/27/20/10122511596322810460.jpg
你可以直接提交微信图片URL
http://api2.sinaapp.com/recognize/picture/?appkey=0020120430&appsecert=fa6095e123cd28fd&reqtype=text&keyword=http://mmsns.qpic.cn/mmsns/wFxOIHALicXicQnmicpXRRkp8URWC1QewPwgH2WdeHf8AYkaOUpdMUzYg/0
如果你喜欢整洁一点,可以使用http_build_query生成请求url,以下供参考
<?php $doucube_params = array('apihost'=>"http://api2.sinaapp.com/", 'callmethod'=>"recognize/picture/?", 'appkey'=>$appkey, 'appsecert'=>$appsecert, 'reqtype'=>$reqtype, 'keyword'=>$picurl; echo http_build_query($doucube_params); ?>
三、获得识别结果
上面的程序运行后获得的识别结果如下:默认为Unicode编码
这是识别成功时的结果
{ "errcode": 0, "msgtype": "text", "text": { "content": "察颜~观色~面相~摸骨~ 嘿!有了:\n年龄:约17岁(碧玉年华)\n漂亮指数:68(天生丽质/:circle)" } }
这是失败时的结果,发送非照片格式文件
{ "errcode": 1, "msgtype": "text", "text": { "content": "八戒你也真调皮呀!我叫你不要乱扔东西,乱扔东西是不对的。" } }
四、程序中实现
发送图片并且获得返回结果的函数如下:
private function receiveImage($object) { $apicallurl = urlencode("http://api2.sinaapp.com/recognize/picture/?appkey=0020120430&appsecert=fa6095e123cd28fd&reqtype=text&keyword=".$object->PicUrl); $pictureJsonInfo = file_get_contents($apicallurl); $pictureInfo = json_decode($pictureJsonInfo, true); $contentStr = $pictureInfo['text']['content']; $resultStr = $this->transmitText($object, $contentStr); return $resultStr; }
而transmitText就是封装微信文本消息的函数,与官方样例中雷同
五、效果演示
这是要发送的图片
六、最新动态
请参考《微信公众平台开发最佳实践》一书
地址 http://www.cnblogs.com/txw1958/p/buy-ebook.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微信公众平台消息接口开发(23)图片识别之男人味/女人味指数
微信 图片识别 人脸识别男人味 女人味微信公众平台消息接口 微信开发模式 作者:http://www.cnblogs.com/txw1958/标题:http://www.cnblogs.com/txw1958/archive/2013/02/28/weixin-if23-man-woman.html 家有儿女 测试结果 某航空姐测试结果 --------------------------------------------------------------------------------------------------------------------------- 关注天气神(账号WeatherGod)方法: 1. 依次进入以下路径:朋友们—>添加朋友—>搜号码,输入WeatherGod,不区分大小写,点击查找,然后点击关注。 2. 扫描二维码:
- 下一篇
大学生组建好团队做点什么项目好
【来信】 老师,你好,我是一名普通院校的学生,我想问你一个问题,就是现在我们班有几个基础差不多的同学,组建了一个团队,其中有学图像识别的,有学java的,又学C的,还有学网络的。我们刚组建起来,不知如何做项目,想请老师指导一下我们如何利用自己的长处,做项目。 【回信】 不知你们是几年级了,各个年级重心并不相同,但感觉应该是不大不小的。“学图像识别的,有学java的,又学C的,还有学网络的”,我担心你们是否已经给自己太早贴上了标签,以至于可能会限制住自己的发展空间。学网络可以算作是一个专业方向,学图像识别可以是一个研究方向,而有学java的,学C的,只是编程语言层面的一个基础,而你们的未来还有更大的空间。感兴趣就将现在要学习的从深度和广度两个方向进行下去,千万不要让这个标签封住了通向其他的可能的途径。形成小团队做点事情,很好的做法。你们想利用好现在几位同学的优势,去设计项目,这是“因人做项目”的思路。我想提另外一个思路,要结合,但也要先放下这些,选定一个项目以后,再想大家怎么分工,这是“因项目决定人如何参加”的思路。这符合工程中需求驱动的原则。在实践中,几乎没有“因为会做什么咱就干点什么...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 设置Eclipse缩进为4个空格,增强代码规范
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音