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

2018-07-23 16:21:52 +08:00
 fusae

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

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

这是处理 POST 的代码

2979 次点击
所在节点    Python
10 条回复
fusae
2018-07-23 17:41:20 +08:00
有啥见解或者方向都可以提一下,谢谢!
torment5524
2018-07-23 17:58:17 +08:00
5 年前做过微信公众号开发,印象不是很深了。
我怎么记得每条消息都是都是有个字段专门做了处理的。。。,你原样转回肯定是不行的。。
fusae
2018-07-23 18:01:57 +08:00
@torment5524 我看官方文档好像没有说你提到的某个字段啊
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543
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
2018-07-23 19:38:31 +08:00
@torment5524,@fusae 擦,看错了,没看到是 python,以为是 print 赋值参数了,我再仔细看看
torment5524
2018-07-23 20:34:48 +08:00
之前抱歉,刚找了我原来写的代码逻辑( java )看了下,如果是原样回复,xml 部分确实只需要替换把发送接收方替换下,剩下的按照格式来即可,如果你的 python 代码生成的 xml,print 没有错误的话,试试直接 return 生成的 xml 字符串,不使用 make_responce 呢。网上看到几个 python 微信公众号的例子是直接返回的。
fusae
2018-07-23 23:29:29 +08:00
@torment5524 你好,我也觉得代码是没问题的,因为不是完全没有回复(看上图),还是有成功的例子的。如果是代码以外的原因,我就不太清楚了。昨晚刚建的阿里云机子,不过 80 端口应该没事啊。
torment5524
2018-07-24 00:16:41 +08:00
@fusae 偶尔还有成功的就很可疑了,你有看下后台 print 的是否正常么,或者可以的话,用下抓包软件看下报文情况。。。
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
2018-07-24 09:27:34 +08:00
https://segmentfault.com/a/1190000015271082

python 公众号开发非常简单,几行搞定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/473359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX