openwechat icon indicating copy to clipboard operation
openwechat copied to clipboard

func (m *Message) ReplyText(content string) (*SentMessage, error) 报错 Ret(1204)

Open YXH-YXH opened this issue 2 years ago • 10 comments

Bot.MessageHandler // 注册消息处理函数 类似下面这样

func m2essageHandler(msg *openwechat.Message) {
	sentMsg, err := msg.ReplyText("filehelper")
	if err != nil {
		log.Print(err)
	}else{
		log.Printf("[自动回复]: %v --> %v %v", sentMsg.SendMessage.FromUserName, sentMsg.SendMessage.ToUserName, sentMsg.SendMessage)
	}
}

log.Print(err)返回了Ret(1204)我不清楚是怎么回事

但是使用 Self.SendTextToFriend函数可以成功发送消息 msg.Bot.GetCurrentUser().SendTextToFriend(friend *Friend, text string) (*SentMessage, error) 类似下面这样

func m2essageHandler(msg *openwechat.Message) {
	self, _ = msg.Bot.GetCurrentUser()
        sentMsg2, err := self.SendTextToFriend(openwechat.NewFriendHelper(self), "pong") // 给文件助手发消息
}

YXH-YXH avatar Sep 25 '22 10:09 YXH-YXH

不是所有的消息都是可以回复的,有的是系统消息 你下面的那种写法是只发送给文件传输助手

eatmoreapple avatar Sep 26 '22 01:09 eatmoreapple

@eatmoreapple 你好,我也遇到了相同的问题,是在对我自己发送消息时出现的

wychootf4 avatar Dec 09 '22 15:12 wychootf4

@eatmoreapple 你好,我也遇到了相同的问题,是在对我自己发送消息时出现的

我也遇到了,你解决了吗

LSJCoder avatar Dec 10 '22 07:12 LSJCoder

遇到了同样的问题,复现方式:登陆 a 账号之后,再登陆 b 账号,b 账号接收消息报错 Ret(1204)

Joey-J3 avatar Dec 14 '22 06:12 Joey-J3

我收到群里面自己的消息,然后回复 就会报错1204,msg.IsComeFromGroup()这里返回的是true 但是获取到的nickname是我自己的昵称不是群的昵称

MichealJl avatar Dec 23 '22 06:12 MichealJl

我也遇到了,msg.ReplyText 回复自己的消息就会报错

riba2534 avatar Mar 10 '23 02:03 riba2534

我也遇到了,msg.ReplyText 回复自己的消息就会报错

我自己改了改代码解决了。。

riba2534 avatar Mar 10 '23 17:03 riba2534

@riba2534 怎么修改的求教

JLLJHD avatar Sep 22 '23 09:09 JLLJHD

无法发送消息给自己,否则会返回1204的错误

eatmoreapple avatar Sep 24 '23 08:09 eatmoreapple

在发送ReplyText之前判断一下,如果是自己发送的,给一个另外的识别码。方法均来自mssage.go(/usr/local/go/bin/pkg/mod/github.com/eatmoreapple/[email protected]/message.go) if reply != nil { msg.FromUserName = func() string { s := msg.FromUserName if msg.IsSendBySelf() { s = msg.ToUserName } return s }() _, err = msg.ReplyText(*reply) if err != nil { log.Println(err) } return err }

savannah1099 avatar Apr 10 '24 07:04 savannah1099