V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fusae
V2EX  ›  Python

微信开发公众号自动回复相同的消息求解

  •  
  •   fusae · 2018-07-23 16:21:52 +08:00 · 3154 次点击
    这是一个创建于 2344 天前的主题,其中的信息可能已经有所发展或是发生改变。

    参考网上的一些例子来实现自动回复,我的理解就是把拿到的 XML 的发送方跟接收方交换下位置,就可以发回去。

    然后一些我不知道怎么解释的错误就出来了,各位大佬看看是什么回事,谢谢!

    7ce725ec756d857846c6cfa242e9683.png

    1532333453(1).jpg

    这是处理 POST 的代码 1532333511(1).jpg

    10 条回复    2018-07-24 09:27:34 +08:00
    fusae
        1
    fusae  
    OP
       2018-07-23 17:41:20 +08:00
    有啥见解或者方向都可以提一下,谢谢!
    torment5524
        2
    torment5524  
       2018-07-23 17:58:17 +08:00
    5 年前做过微信公众号开发,印象不是很深了。
    我怎么记得每条消息都是都是有个字段专门做了处理的。。。,你原样转回肯定是不行的。。
    fusae
        3
    fusae  
    OP
       2018-07-23 18:01:57 +08:00
    @torment5524 我看官方文档好像没有说你提到的某个字段啊
    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543
    torment5524
        4
    torment5524  
       2018-07-23 19:34:44 +08:00
    好的,我仔细看了下你的代码和文档好像确实没了,可能是我记得是根服务器认证那块。
    你的代码是和逻辑不配合
    from 存的是用户的 id
    to 存的是你的 id
    content 存的内容

    如果我没理解错的话,你返回的字符串参数中
    第一个是 to,你应该填入 from,但是你填的是 to
    第二个是 from,你应该填 to,但是你填的 from
    第三个是 createtime,应该填时间,你填的是回复内容 content
    第四个是 content,你填的是 msgid
    torment5524
        5
    torment5524  
       2018-07-23 19:38:31 +08:00
    @torment5524,@fusae 擦,看错了,没看到是 python,以为是 print 赋值参数了,我再仔细看看
    torment5524
        6
    torment5524  
       2018-07-23 20:34:48 +08:00
    之前抱歉,刚找了我原来写的代码逻辑( java )看了下,如果是原样回复,xml 部分确实只需要替换把发送接收方替换下,剩下的按照格式来即可,如果你的 python 代码生成的 xml,print 没有错误的话,试试直接 return 生成的 xml 字符串,不使用 make_responce 呢。网上看到几个 python 微信公众号的例子是直接返回的。
    fusae
        7
    fusae  
    OP
       2018-07-23 23:29:29 +08:00
    @torment5524 你好,我也觉得代码是没问题的,因为不是完全没有回复(看上图),还是有成功的例子的。如果是代码以外的原因,我就不太清楚了。昨晚刚建的阿里云机子,不过 80 端口应该没事啊。
    torment5524
        8
    torment5524  
       2018-07-24 00:16:41 +08:00
    @fusae 偶尔还有成功的就很可疑了,你有看下后台 print 的是否正常么,或者可以的话,用下抓包软件看下报文情况。。。
    MES
        9
    MES  
       2018-07-24 09:26:48 +08:00
    炒鸡简单啊,
    ```python
    def on_post(self, req, resp):
    xml = req.stream.read()
    msg = parse_message(xml)
    if msg.type == 'text':
    reply = TextReply(content=msg.content, message=msg)
    xml = reply.render()
    resp.body = (xml)
    resp.status = falcon.HTTP_200
    ```
    MES
        10
    MES  
       2018-07-24 09:27:34 +08:00
    https://segmentfault.com/a/1190000015271082

    python 公众号开发非常简单,几行搞定
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:43 · PVG 14:43 · LAX 22:43 · JFK 01:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.