如何在公众号内接入对话能力时异步回复给用户

CN
哥飞
2023-03-30 00:00:00

如何在公众号内接入对话能力时异步回复给用户

原创  我是哥飞  2023-03-30 09:30:51

如果你想在公众号里接入对话能力,有两种办法可以回复消息给用户。

第一种是在微信转发用户消息给你时,你直接回复那个请求,如下图所示。

93fc96ef422a4cbe.png

但这种方式有个限制,你必须在5秒内响应,否则如果微信重复3次,你都没有在5秒内回复的话,你的公众号就会显示“该公众号暂时无法提供服务,请稍后再试”。

第二种办法是,用客服消息,只要用户在48小时内与你的公众号有过互动,你就可以发很多条客服消息给他,如下图所示。

f24f551c550b4d51.png

第二种方法也要配合第一种方法使用,先在第一种方法请求过来时把用户消息放进消息队列,然后立即回复“SUCCESS”,让微信服务器快速收到你的响应。

然后另起一个常驻进程,不断从消息队列里读取消息,组合用户此前对话,发请求给模型,得到回复后,调用客服消息接口发回答给用户。

而且这种方式还支持发送小程序链接给用户。

这里也有两个细节要注意: 1、能发送的文字有最大长度限制,如果用户让模型写一篇5000字文章,那么就需要把长文拆分成多段,多次发送;

2、为了体验,你可以在接收到用户消息时,发送一个客服输入状态,如下图所示,用户就会看到对方正在输入,可以减缓等待焦虑。

d62b7f9b899245ba.png

那么发送客服消息,是不是只能发送文字消息呢?

并不是。

文字消息、图片消息、语音消息、视频消息、音乐消息、图文消息(跳转至外链)、图文消息(跳转至公众号图文)、菜单消息等各种形式消息都能够发送。

客服消息文档:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Service_Center_messages.html#7

最后感谢@星空猎人阿拉丁 是他告诉我客服消息这个用法的。