微信公众号-人脸识别(python)

闲话:最近在学python,正好做个微信公众号练练手(关键是新浪sae现在python项目不要钱),有错误的地方请大家指正

准备工作:

              1.到微信公众平台注册https://mp.weixin.qq.com/ ,按照提示注册成功后,选择开发->基本配置->成为开发者

                

                  在url里面填写你在新浪SAE里应用名称地址,Token可以随便填,只要和后面的代码对应就好  ,提交之后不要忘记点击启用

              2.应用放在SAE上面,到https://www.sinacloud.com/注册 (如何操作,按步骤提示就OK)

              3.我用的图像识别api是face++,到http://www.faceplusplus.com.cn 注册,获取API Key和API Secret,后面调用api需要的参数

编写代码:

    首先编写config.yaml

name: qunimei
version: 1
 
libraries:
- name: webpy 
  version: "0.36"
 
- name: lxml
  version: "2.3.4"
    编写index.wsgi

# coding: UTF-8
import os
 
import sae
import web
 
from weixinInterface import WeixinInterface
 
urls = (
'/','WeixinInterface'  #如果'/'改变,微信公众号中的url也要改变('/weixin',微信公众号中在url里面填写你在新浪SAE里应用名称并且加上/weixin)
)
 
app_root = os.path.dirname(__file__)
templates_root = os.path.join(app_root, 'templates')
render = web.template.render(templates_root)
 
app = web.application(urls, globals()).wsgifunc()        
application = sae.create_wsgi_app(app)
    新建一个weixinInterface.py文件,关键代码
# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json
from lxml import etree
import urllib2,urllib
import json
from urllib2 import Request, urlopen, URLError, HTTPError
 
class WeixinInterface:
 
    def __init__(self):
        self.app_root = os.path.dirname(__file__)
        self.templates_root = os.path.join(self.app_root, 'templates')
        self.render = web.template.render(self.templates_root)

    def GET(self):
        #获取输入参数
        data = web.input()
        signature=data.signature
        timestamp=data.timestamp
        nonce=data.nonce
        echostr=data.echostr
        #自己的token
        token="*******" #这里改写你在微信公众平台里输入的token
        #字典序排序
        list=[token,timestamp,nonce]
        list.sort()
        sha1=hashlib.sha1()
        map(sha1.update,list)
        hashcode=sha1.hexdigest()
        #sha1加密算法
        #如果是来自微信的请求,则回复echostr
        if hashcode == signature:
            return echostr

    def POST(self):        
        str_xml = web.data() #获得post来的数据
        xml = etree.fromstring(str_xml)#进行XML解析
        #content=xml.find("Content").text#获得用户所输入的内容
        msgType=xml.find("MsgType").text
        fromUser=xml.find("FromUserName").text
        toUser=xml.find("ToUserName").text
        #return self.render.reply_text(fromUser,toUser,int(time.time()),u"我现在还在开发中,还没有什么功能,您刚才说的是:"+content)
        if msgType == "image":
        //下面代码大家可以根据自需求添加

因为这里我们定义了templates_root为根目录下的templates,所以还要在根目录下创建一个目录templates的目录,接着我们在templates目录下创建reply_text.xml模板文件,写入以下代码

$def with (toUser,fromUser,createTime,content)
<xml>
<ToUserName><![CDATA[$toUser]]></ToUserName>
<FromUserName><![CDATA[$fromUser]]></FromUserName>
<CreateTime>$createTime</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[$content]]></Content>
<Event><![CDATA[subscribe]]></Event>
</xml>

face++官网有api说明;使用urllib2 http客户端库,微信接受和发送信息原理和各种信息(文本、图片、链接、视频等):http://www.cnblogs.com/yank/p/3507326.html


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值