求教:如何获取群聊中 @昵称 内容 这种形式下 @后面的这个人的wxID如何获取 ?
xueyangkk opened this issue · 9 comments
在群聊中 如内容如下
@张三 你好你在哪?
我希望获取 张三的wxid 这种如何获取 因为不是@本人
代码并没有封装 求教如何获取
message *user.Message
message.MentionList() 可以帮到你
go-wechaty/wechaty/user/message.go
Line 236 in 6d8b30f
在群聊中 机器是A , B@C 文字内容 可以通过Talker()获取B的信息。 但是无法获取C的信息 , 您提到的 message.MentionList()经测试 返回是nil, 我查看了下
if len(m.payload.MentionIdList) > 0 这段跳过了 是等于0
求解答 感谢
我记得是没问题的啊,你用的是什么 puppet ?
if len(m.payload.MentionIdList) > 0 这段跳过了 是等于0
这段跳过了,还会继续走后边的逻辑,分析text里的@
go-wechaty/wechaty/user/message.go
Line 260 in 6d8b30f
我好像发现了确实有 bug
atList := strings.Split(m.Text(), config.AtSepratorRegex)
替换为
atList := regexp.MustCompile(config.AtSepratorRegex).Split(m.Text(), -1)
我使用了PadLocal ,我测试下 似乎这个并不是常发 而是偶发bug 我电脑 和 手机 同时登录时候, 我用电脑发消息 @C 内容 时候 MentionIdList 偶尔会收不到 , 其次 当 我是群主时候 @C 也有可能收不到 但不是绝对 我按照您的替换下试试 非常感谢解答
我已经提交了修复代码到新的分支:1a810e3
你能帮忙更新最新代码验证一下吗?
go get -v github.com/wechaty/go-wechaty@fix_mention
完美 已经修复 感谢
已合并到 master