参考网上的一些例子来实现自动回复,我的理解就是把拿到的 XML 的发送方跟接收方交换下位置,就可以发回去。
然后一些我不知道怎么解释的错误就出来了,各位大佬看看是什么回事,谢谢!
这是处理 POST 的代码
1
fusae OP 有啥见解或者方向都可以提一下,谢谢!
|
2
torment5524 2018-07-23 17:58:17 +08:00
5 年前做过微信公众号开发,印象不是很深了。
我怎么记得每条消息都是都是有个字段专门做了处理的。。。,你原样转回肯定是不行的。。 |
3
fusae OP |
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 |
5
torment5524 2018-07-23 19:38:31 +08:00
@torment5524,@fusae 擦,看错了,没看到是 python,以为是 print 赋值参数了,我再仔细看看
|
6
torment5524 2018-07-23 20:34:48 +08:00
之前抱歉,刚找了我原来写的代码逻辑( java )看了下,如果是原样回复,xml 部分确实只需要替换把发送接收方替换下,剩下的按照格式来即可,如果你的 python 代码生成的 xml,print 没有错误的话,试试直接 return 生成的 xml 字符串,不使用 make_responce 呢。网上看到几个 python 微信公众号的例子是直接返回的。
|
7
fusae OP @torment5524 你好,我也觉得代码是没问题的,因为不是完全没有回复(看上图),还是有成功的例子的。如果是代码以外的原因,我就不太清楚了。昨晚刚建的阿里云机子,不过 80 端口应该没事啊。
|
8
torment5524 2018-07-24 00:16:41 +08:00
@fusae 偶尔还有成功的就很可疑了,你有看下后台 print 的是否正常么,或者可以的话,用下抓包软件看下报文情况。。。
|
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 ``` |
10
MES 2018-07-24 09:27:34 +08:00
|