欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-04 11:53:24
微信这个东西估计宅男没几个不熟悉的吧,微信经过这么两年多的发展终于向开放平台跨出了友好的一步。蛋疼的以为微信会出一个详细的api等接口,兴奋不已的去申请了微信公共平台,然后...

微信这个东西估计宅男没几个不熟悉的吧,微信经过这么两年多的发展终于向开放平台跨出了友好的一步。蛋疼的以为微信会出一个详细的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的示例