Python开源:itchatmp - 一个开源的微信公众号、企业号接口

BereniceQOF 7年前
   <h2>介绍</h2>    <p>itchatmp是一个开源的微信公众号、企业号接口,使用python调用微信公众号从未如此简单。</p>    <p>基于tornado框架,满足效率需求。支持普通使用、nginx反向代理与wsgi。</p>    <p>同样的命令,支持同步与协程调用,适合各层次开发者使用。</p>    <h2>安装</h2>    <p>可以通过本命令安装itchatmp:</p>    <pre>  <code class="language-python">pip install itchatmp</code></pre>    <h2>快速入门</h2>    <p>有了itchatmp,如果你想要回复发给自己的文本消息,只需要这样:</p>    <pre>  <code class="language-python">import itchatmp    itchatmp.update_config(itchatmp.WechatConfig(      token='yourToken',      appId = 'yourAppId',      appSecret = 'yourAppSecret'))    @itchatmp.msg_register(itchatmp.content.TEXT)  def text_reply(msg):      return msg['Content']    itchatmp.run()</code></pre>    <p>一些进阶应用可以在Advanced uses中看到,或者你也可以阅览 <a href="/misc/goto?guid=4959733735747725943" rel="nofollow,noindex">文档</a> 。</p>    <h2>截屏</h2>    <p><img src="https://simg.open-open.com/show/8a1485896b7e785219d52f5ac57d9669.png"></p>    <h2>进阶使用</h2>    <h3>企业号配置</h3>    <p>在配置时设置copId而非appId即可。</p>    <p>另,由于企业号没有明文模式,所以必须将加密模式设置为安全。</p>    <p>具体的设置可以看 <a href="/misc/goto?guid=4959733735838297137" rel="nofollow,noindex">这里</a> 。</p>    <h3>协程使用</h3>    <p>如果你需要使用协程版本的itchatmp,你需要另外安装一个组件:</p>    <pre>  <code class="language-python">pip install itchatmphttp</code></pre>    <p>这样,你的itchatmp就变成协程版本了。同样,删除以后就变回了线程池版本。</p>    <p>例如回复信息的操作,协程也只需要这样写:</p>    <pre>  <code class="language-python">import itchatmp  from tornado import gen    itchatmp.update_config(itchatmp.WechatConfig(      token='yourToken',      appId = 'yourAppId',      appSecret = 'yourAppSecret'))    @itchatmp.msg_register(itchatmp.content.TEXT)  def text_reply(msg):      yield gen.sleep(3)      r = yield itchatmp.send('First message', msg['FromUserName'])      print('First message sent: %s' % r)      yield gen.sleep(3)      r = yield itchatmp.send('First message', msg['FromUserName'])      print('Second message sent: %s' % r)    itchatmp.run()</code></pre>    <p>itchatmp里面所有的方法都变成了协程方法,如果你不熟悉协程 <strong>建议不要使用</strong> ,线程池也足够满足普通需求。</p>    <p>如果你问出类似为什么 time.sleep 阻塞了协程的问题,我会很困扰的。</p>    <h3>WSGI使用</h3>    <p>如果你需要生成一个能够在类似SAE的平台上包装的应用,你可以这样生成:</p>    <pre>  <code class="language-python">app = itchatmp.run(isWsgi=True)</code></pre>    <p>如果你还是无法配置,请阅读文档一栏的 <a href="/misc/goto?guid=4959733735922433335" rel="nofollow,noindex">部署</a> 部分。</p>    <h2>意见与建议</h2>    <p>如果有什么问题或者建议都可以在这个Issue和我讨论</p>