Closed xiangyaoan closed 2 years ago
用的什么puppet?
请提供下复现代码
用的 puppet-padlocal
用的 docker wechaty/wechaty:0.78 + puppet-padlocal 0.41版本,在onMessage 中调用 message.Recall()
从你的描述看似乎是在撤回别人发的消息
是在自己发送的内容中使用的
可以测试下这段代码?
selfMsg, err := message.Say("dong")
if err != nil {
log.Println(err)
return
}
isRecall, err := selfMsg.Recall()
if err != nil {
log.Println(isRecall, err)
return
}
测试了一把在群里发言
你使用的是最新的 go-wechaty 版本吗?v0.4.x
我使用 go-wecahty v0.4.2 + wechaty 镜像 wechaty/wechaty:1.19 测试我发的代码是没问题的
是的
那我升级试试,感谢
升级后可以了,顺便问下,只有用 message.Say 发出的内容才能recall 是吧。就是用做机器人的微信账号通过pc端发言内容无法撤回
我看了 padlocal 的源码,看起来是只有通过程序发出的才能正常撤回
从pc端发的信息调用,感觉上是wechaty取字段和go-wechaty没对上
你可以看下 puppet-padlocal 的代码,撤回消息会从缓存中找 revokeinfo, 而这个 revokeinfo 是只有发送消息时才会存入缓存
好的,感谢大佬帮助!
@xiangyaoan 我发现升级 wechaty/wechaty:1.19 会导致死循环,需要把 go-wechaty 升级到 v0.4.3 可以修复这个问题
使用的wechaty是 docker 0.78 调用 message.Recall() ERR PuppetServiceImpl grpcError() messageRecall() rejection: Cannot read properties of undefined (reading 'clientmsgid')