openwechat
openwechat copied to clipboard
你们会每天晚上自动退出嘛 RetCode:1102 Selector:0
我每天都会晚上自动退出,现在把日志输出下看看代码是多少 提示消息:sync check unknown error RetCode:1102 Selector:0
看了下接口返回 window.synccheck={retcode:"0",selector:"2"} retcode SUCCESS("0", "成功"), TICKET_ERROR("-14", "ticket错误"), PARAM_ERROR("1", "传入参数错误"), NOT_LOGIN_WARN("1100", "未登录提示"), NOT_LOGIN_CHECK("1101", "未检测到登录"), COOKIE_INVALID_ERROR("1102", "cookie值无效"), LOGIN_ENV_ERROR("1203", "当前登录环境异常,为了安全起见请不要在web端进行登录"), TOO_OFEN("1205", "操作频繁"); selector NORMAL("0", "正常"), NEW_MSG("2", "有新消息"), MOD_CONTACT("4", "有人修改了自己的昵称或你修改了别人的备注"), ADD_OR_DEL_CONTACT("6", "存在删除或者新增的好友信息"), ENTER_OR_LEAVE_CHAT("7", "进入或离开聊天界面");
还有说法是如果cookie正确那就是登录的redirect_uri变了,后面我去确认下
会!每晚都会!大神有解决方案吗?
先监控下最近的请求和返回看看呗
package main
import (
"bytes"
"fmt"
"net/http"
"strconv"
"github.com/eatmoreapple/openwechat"
)
var respLogs []respLog
type respLog struct {
method string
url string
headers map[string][]string
body string
}
type HK struct{}
func (hk HK) AfterRequest(response *http.Response, err error) {
body, _ := io.ReadAll(resp.Body)
respBody := io.NopCloser(bytes.NewBuffer(body))
resp.Body = respBody
rs := &respLog{
method: resp.Request.Method,
url: resp.Request.URL.String(),
headers: resp.Request.Header,
body: string(body),
}
if len(respLogs) == 50 {
respLogs = respLogs[1:]
}
respLogs = append(respLogs, *rs)
}
func (hk HK) BeforeRequest(req *http.Request) {
// fmt.Println("before request")
}
func main() {
// bot := openwechat.DefaultBot()
bot := openwechat.DefaultBot(openwechat.Desktop) // 桌面模式,上面登录不上的可以尝试切换这种模式
// 设置请求最大重试次数
bot.Caller.Client.MaxRetryTimes = 10
// 注册消息处理函数
bot.MessageHandler = func(msg *openwechat.Message) {
if msg.IsText() && msg.Content == "ping" {
msg.ReplyText("pong")
}
}
// 注册登陆二维码回调
// bot.UUIDCallback = handlers.QrCodeCallBack
bot.UUIDCallback = openwechat.PrintlnQrcodeUrl
// 心跳包回调函数
bot.SyncCheckCallback = func(resp openwechat.SyncCheckResponse) {
// 当返回的RetCode不为0时打印输出。
if !resp.Success() {
println("RetCode:%s Selector:%s", resp.RetCode, resp.Selector)
rs := respLogs
for i, respLog := range rs {
// fmt.Println(response)
println(strconv.Itoa(i) + ":----------------")
println(respLog.method, respLog.url)
fmt.Println(respLog.headers)
println(fmt.Sprintf("Response Body: %v", respLog.body))
}
}
}
// 获取消息发生错误的handle, 返回true则尝试继续监听
bot.MessageErrorHandler = func(err error) bool {
println(fmt.Sprintf("Message error: %v ", err))
return false
}
// 监控请求信息
var hk openwechat.HttpHook
hk = HK{}
bot.Caller.Client.AddHttpHook(hk)
// 执行登录
// 登陆
if err := bot.Login(); err != nil {
fmt.Println(err)
return
}
// 获取登陆的用户
self, err := bot.GetCurrentUser()
if err != nil {
fmt.Println(err)
return
}
// 获取所有的好友
friends, err := self.Friends()
fmt.Println(friends, err)
// 获取所有的群组
groups, err := self.Groups()
fmt.Println(groups, err)
// 阻塞主goroutine, 直到发生异常或者用户主动退出
bot.Block()
}
长时间收不到消息之后就会掉线
退出了
2023/02/26 01:20:12 cookie invalid
长时间收不到消息 就会掉线,这种怎么处理呢 @eatmoreapple
长时间收不到消息 就会掉线,这种怎么处理呢 @eatmoreapple
搞个小号,定时互相发消息试试
会不会是这个原因,手机上的微信不能掉线 https://github.com/littlecodersh/ItChat/issues/70
请问大神们解决这个问题了么
请问大神们解决这个问题了么
有大神解决这个问题了吗?