【Python + 微信】微信公众号开发避坑指南

  • 大家好,我是同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏

本站文章一览:

在这里插入图片描述


本文主要讨论下我在公众号开发过程中遇到的问题,给大家避个坑。

0. 背景

前一段时间,我折腾过 微信公众号 的开发,成功将 ChatGPT 接入了微信公众号。但那只是实现了与 ChatGPT 的简单对话,并没有实际用途。

之前的开发教程可参考我的这个专栏:微信公众号开发

而随着这段时间学习AI大模型应用开发,萌生了在微信上搞点真正有用的东西给大家参考的想法。于是今天想重启下微信公众号开发。

不幸的是,遇到了无法解决的问题,在本文中写出来,供大家避坑。

当然,我的微信公众号是 个人订阅号,如果是企业订阅号或服务号需要大家自行甄别。

1. 避坑

1.1 限制

  1. 个人订阅号, 接口权限不足,无法主动给用户发消息(客服接口),只能被动回复用户的消息。也就是说,用户在公众号界面给你发了一条消息,你才能给一条回复。

在这里插入图片描述

  1. 而且,对于自建的服务来说,你只有5s的时间去回复消息。超过5s,微信服务器会重新发起请求,重试2次,一共是3次请求。如果每次请求5s内都没有给回复,那就算应答失败,服务即使在第6s给了回复,用户不会收到任何回复。

在这里插入图片描述

1.2 我的问题

我想在微信公众号自建服务上接通 ChatGPT(已完成),但是想在此基础上,做些其它功能,例如总结一段文字内容,很容易超出5s需要回复的限制。

1.3 网上的解决方案

搜了网上的解决方案,大体都差不多,总结下来,有以下几种。

1.3.1 将超时时间增加到15s

这种方式不用额外的接口调用。

实现思路是:因为微信服务会发3次请求,每5s一次,那就在第一次请求时记录请求ID(这个ID在重试时是不变的),然后将请求转到另外的线程去处理。

如果在5s内该消息处理完了,直接返回。如果处理不完,5s超时,微信服务会来第二次重试请求,或者第三次重试请求。在每一次重试时查看这个消息ID是否处理完成,处理完成就直接返回。

这样,我们就将5s超时增加到了15s才超时。

但是这种方法还是有弊端的,也无法完全保证用户的请求能在15s内处理完,尤其是在AI应用中。

1.3.2 处理完后主动给用户发信息

这种方式的处理思路是:接收到请求后,将请求转到其它线程去处理,然后本次请求直接返回 sucess。这样,微信服务不会重试请求。

当其它线程处理完消息后,主动调用接口给用户发消息。

这种方式没有超时的限制,但是需要有接口权限。很遗憾,个人订阅号没有此权限。

参考链接:

  • https://blog.csdn.net/catoop/article/details/134097675
  • https://www.hoscen.cn/blog/hao/articles/232276242445893632.html

2. 结论

最终结论就是,个人订阅号开发限制太多,权限太低,自己玩玩儿可以,但想实现一些有用的功能,还是比较困难。

意见仅供参考,如果有有效的解决方案,欢迎评论或私信,求指教。

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,日常分享AI知识和实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜同学小张 🙏

本站文章一览:

在这里插入图片描述

  • 38
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同学小张

如果觉得有帮助,欢迎给我鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值