微信公众号-人脸识别(python)
2016-02-26 11:07
561 查看
闲话:最近在学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
因为这里我们定义了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
准备工作:
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
相关文章推荐
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- 微信悄悄升级群聊功能:个人微信营销号的福音
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- 突击部队拼多多
- 我是运营,我没有假期
- Python将excel导入到mysql中