在Python的Bottle框架中使用微信API的示例


Posted in Python onApril 23, 2015

微信这个东西估计宅男没几个不熟悉的吧,微信经过这么两年多的发展终于向开放平台跨出了友好的一步。蛋疼的以为微信会出一个详细的api等接口,兴奋不已的去申请了微信公共平台,然后开始找各种api的位置……

花费了近一个小时,依然没找到……

最后动用Google大杀器,终于找到了这么个链接。我了个去的,没比这还简单的api文档了吧。

最让人无法理解的是:居然没有本地开发环境支持,每次都要放在生产环境去调试。

最让人欣慰的是:就那么俩方法,生产环境调试几次也就完事了。

Python(bottle)版代码如下:

# -*- coding:utf-8 -*-

from bottle import debug, default_app, run, get, request, post

import sys, os, time, libxml2dom

@get('/')

def index():

  return request.GET.get('echostr')

@post('/')

def index_post():

  for key, value in request.POST.allitems():

    doc = libxml2dom.parseString(key)

    _to = doc.xpath('//FromUserName')[0].textContent

    _from = doc.xpath('//ToUserName')[0].textContent

    #_content = doc.xpath('//Content')[0].textContent

  return """<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[text]]></MsgType>

<Content><![CDATA[%s]]></Content>

<FuncFlag>0</FuncFlag>

</xml>"""%(_to, _from, int(time.time()), u'我了个去啊')

if __name__ == "__main__":

  # Interactive mode

  debug(True)

  port = int(sys.argv[1] if len(sys.argv) > 1 else 8888)

  run(host='0.0.0.0', port=port, reloader=True)

else:

  # Mod WSGI launch

  os.chdir(os.path.dirname(__file__))

  app = default_app()

演示直接看图:

在Python的Bottle框架中使用微信API的示例

Python 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
用Python编写简单的微博爬虫
Mar 04 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python的多维空数组赋值方法
Apr 13 Python
python实现微信自动回复机器人功能
Jul 11 Python
python 字符串常用函数详解
Sep 11 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
基于Python的OCR实现示例
Apr 03 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
django 外键创建注意事项说明
May 20 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
最基础的Python的socket编程入门教程
Apr 23 #Python
利用Python实现简单的相似图片搜索的教程
Apr 23 #Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 #Python
Python中优化NumPy包使用性能的教程
Apr 23 #Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 #Python
用Python给文本创立向量空间模型的教程
Apr 23 #Python
用Python进行行为驱动开发的入门教程
Apr 23 #Python
You might like
php生成无限栏目树
2017/03/16 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Python做简单的字符串匹配详解
2017/03/21 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
大学生毕业的自我评价分享
2014/01/02 职场文书
物业招聘计划书
2014/01/10 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript