发送消息失败
zzx0421 opened this issue · 25 comments
调用SmartQQClient.sendMessageToFriend出现:发送失败,Api返回码[{"retcode":1202,"errmsg":""}]
偶尔又可以发送成功,这是什么情况?
可以看看是否与这个issue中的提到的方式有关
from zignmail@gmail.com
以前几乎不会出现,最近两个月出现的特别频繁。而且不像是文本信息的问题,因为有的时候返回1202消息也能发送成功。
我怀疑是一种类似503错误,就是smartqq服务端处理不过来了。不过最恶心的是1202有的时候会发送成功,也就是没办法针对1202进行重试。
最终的解决方案:在群里起两个进程,一个用于发送消息,另一个用于监控消息是否收到。
就算能监控到消息发送失败也没用什么用、因为就是发不出去
这个问题我是直接碰上1202就重新发送...直到发送成功或者达到一定的尝试次数才停止..
最终还是能发的出去的。感觉是服务器不稳定而不是什么敏感词。碰到1202就重新发送--那你碰到一条信息重复发的情况肯定不大少。
这样会导致重复发送很多相同消息、用户体验不好
@cosineyan 两个 QQ 就能解决问题么?
@88250 一个QQ用于发送消息,发送时如果遇到1202错误,保存记录到一个内存结构或者数据库里,标识时间,以及状态为等待consume。while循环sleep一秒,刷新这条记录的状态,如果是确认成功,则break,否则重发。再设定一个重试次数或时间。
另外一个QQ只用来监控1号QQ发出的群信息,如果有收到,并且同样的内容在最近一分钟内出现且状态为等待,则标识该记录为确认成功。
亲测可用。有时会造成用户问个问题时,机器人貌似考虑一小段时间再回答的诡异现象。。。
@cosineyan 好的,多谢思路
请求失败,Api返回码[103] 这个是什么情况呢
checkSendMsgResult方法里的LOGGER.error(String.format("发送失败,Api返回码[%d]", json.getInteger("retcode")));没有写条件呢?这样不是总是执行了么?
我这里老是提示“发送失败,Api返回码[null]”
@hejianjun 很无法理解的是,我完全没有印象我是这么写的…ORZ我去改一下…
顺便感谢 @hejianjun 的反馈 🍇
你们俩真是好基友啊
额,今天使用的时候我也发现这个问题了。
然而我的状态码返回的是0
{u'msg':` u'send ok', u'errCode': 0}
但是我还是接收不到消息。无奈我刷屏才会成功返回我一两条消息。
最可气的是1202时我接收到消息了!不知道 怎么解决。
我发现有时日志上显示机器人发群消息成功,但群里未收到消息。这是怎么回事??
哦
哦