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

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

本站文章一览:


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

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。这样,微信服务不会重试请求。

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

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

参考链接:

2. 结论

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

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

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


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

本站文章一览:

相关文章
|
1天前
|
项目管理 开发工具 git
Python面试题:Git版本控制与协作开发
【4月更文挑战第19天】本文聚焦于Python面试中Git版本控制与协作开发的考察点,涵盖Git基础、协作流程及实战示例。面试者需理解仓库、提交、分支等核心概念,掌握常用命令,熟悉主干开发和GitFlow策略。在协作开发中,要掌握Pull Request工作流,有效处理合并冲突,并善用标签与里程碑。注意避免混淆工作区、忽视代码审查和直接在远程分支上工作等常见错误。通过实例展示了如何在GitFlow策略下合并分支和解决冲突,强调持续学习与实践以提升Git技能。
26 1
|
1天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
【5月更文挑战第12天】Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
116 2
|
1天前
|
JSON 缓存 Java
|
1天前
|
Python
LabVIEW和Python开发微细车削控制系统
LabVIEW和Python开发微细车削控制系统
LabVIEW和Python开发微细车削控制系统
|
1天前
|
安全 测试技术 持续交付
在Python Web开发中,测试是一个至关重要的环节
【5月更文挑战第12天】在Python Web开发中,测试至关重要,包括单元测试(unittest模块)、集成测试、功能测试、系统测试、验收测试、性能测试、安全测试和端到端测试。常用的测试工具有unittest、pytest、selenium、requests和coverage。遵循“测试先行”和“持续集成”原则,确保代码质量与稳定性。
141 3
|
1天前
|
存储 程序员 API
python web开发示例详解
python web开发示例详解
17 0
|
1天前
|
数据采集 存储 人工智能
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
40 0
|
1天前
|
人工智能 机器人 API
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
34 0
|
1天前
|
缓存 人工智能 API
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
【Python+微信】【企业微信开发入坑指北】2. 如何利用企业微信API主动给用户发应用消息
21 0
|
1天前
|
XML 人工智能 数据安全/隐私保护
【Python+微信】【企业微信开发入坑指北】1. 数据链路打通:接收用户消息处理并回复
【Python+微信】【企业微信开发入坑指北】1. 数据链路打通:接收用户消息处理并回复
17 0