php专区

 首页 > php专区 > PHP应用 > 开放平台 > 方倍微信公众平台消息接口开发(24)图片识别之

方倍微信公众平台消息接口开发(24)图片识别之

分享到:
【字体:
导读:
          微信公众平台开发模式微信 公众平台 消息接口 开发模式 企业微信公众平台 图片识别 人脸识别API 作者:方倍工作室原文:http: www cnblogs com txw1958 archive 2013 03 13 weixin-if24-face-recognize-...

 微信图片获取

首先要获得用户发过来的图片,微信公众平台支持接收图片,一条图片消息的格式如下:


    
    
    1357543196
    
    
    5830603629728080261

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,以下供参考

"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就是封装微信文本消息的函数,与官方样例中雷同


五、效果演示

这是要发送的图片

分享到:
方倍微信公众平台消息接口开发(50)在线...
微信公众平台在年前开放了新的消息接口-音乐消息,这是广大微信公众平台开发者的福音。 根据这一功能,如果能做出在微信中点歌功能,那么我们以后就可以不用安装其他APP, 直接在微信里面关注一个账号,就可以听歌了,还省去了安装的麻烦,而且不用再占用空间。如果音乐资源足够好,那将秒杀一切手机上在线听歌软件也不是...
方倍微信公众平台开发(80) 上传下载多媒...
微信公众账号在回复图片、语音、视频的时候,将使用media_id来调用相关文件,很多朋友咨询这个如何开发实现。本文将介绍在微信公众平台开发过程中,如何上传下载多媒体文件。   一、上传多媒体文件 公众号可调用本接口来上传图片、语音、视频等文件到微信服务器,上传后服务器会返回对应的media_id,公众号此后可根据该...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……