songtianyi / wechat-go

go version wechat web api and message framework for building wechat robot
MIT License
1.83k stars 341 forks source link

扫码登陆失败了 #4

Closed wsvn53 closed 7 years ago

wsvn53 commented 7 years ago

Terminal 里提示这个报错:

2017/05/09 09:29:55 [E] invalid response, window.code=201;
2017/05/09 09:30:00 login failed:expected element type <error> but have <script>
songtianyi commented 7 years ago

@wsvn53 提供下编译和运行环境,复现步骤。

wsvn53 commented 7 years ago
go version go1.8 darwin/amd64

重现步骤是 go run main.go,扫码完成后,出现如上错误。

main.go

package main

import (
    "github.com/songtianyi/wechat-go/wxweb"
    "log"
    "./weass"
)

func main() {
    session, err := wxweb.CreateSession(nil, nil, wxweb.TERMINAL_MODE)
    if err != nil {
        log.Fatal(err)
    }

    weass.Register(session)

    session.HandlerRegister.EnableByName("txt-helper")
    if err := session.LoginAndServe(false); err != nil {
        log.Fatal("login failed:", err)
    }
}
songtianyi commented 7 years ago

@wsvn53 未能重现 workdeMacBook-Pro:wechat-go work$ go version go version go1.8 darwin/amd64

2017-05-09 3 34 11

lamproae commented 7 years ago

换个账号试下,我微信双开,有一个是正常的,另一个有这个问题。

songtianyi commented 7 years ago

@wsvn53 @lamproae 我刚才新注册了一个号,也遇到这种问题,旧的号是正常的,同一个binary。 我估计是你的号被腾讯认定为机器人了。

wsvn53 commented 7 years ago

但奇怪的是,其他同类的库同样的账号可以登陆 https://github.com/ManiacMike/gorobot.git

songtianyi commented 7 years ago

@wsvn53 能正常使用?我用我新注册的号能扫描 但是无法使用。 新号结果

[*] 请在手机上点击确认以登录 ...
[*] 正在登录 ... 成功,用时1.07372秒
[*] 微信初始化 ... 成功,用时0.58658秒
[*] 开启状态通知 ... 成功,用时0.44922秒
[*] 进行同步线路测试 ... 失败
[*] 退出程序

旧号结果

[*] 请在手机上点击确认以登录 ...
[*] 正在登录 ... 成功,用时0.25227秒
[*] 微信初始化 ... 成功,用时0.55790秒
[*] 开启状态通知 ... 成功,用时0.17526秒
[*] 进行同步线路测试 ... 成功,用时0.40400秒
[*] 成功截获微信初始化消息
[*] 成功截获微信初始化消息
川菜

基本上可以肯定跟号有关系,只不过我的代码在扫描的时候就把错误抛出来了。

wsvn53 commented 7 years ago

确实无法使用,显示登陆成功,但线路测试失败

buf1024 commented 7 years ago

@songtianyi


@wsvn53 @lamproae 我刚才新注册了一个号,也遇到这种问题,旧的号是正常的,同一个binary。 我估计是你的号被腾讯认定为机器人了。

这个回答不成立。原因如下:

  1. 用web浏览器可以登录 -- 这个没有完全模拟浏览器行为?
  2. 用这个可以登录使用 https://github.com/Urinx/WeixinBot
  3. 自己用浏览器开发者工具查看微信交互过程,设置好user-agent,refer,cookie等信息,可能登录。

归根结底,可能是没有对web浏览器行为的完全模拟……

songtianyi commented 7 years ago

@buf1024 你的账号使用 weixinBot/微信可以登录并正常使用,但是使用wechat-go不能, 是这个意思不

lamproae commented 7 years ago

这个问题和账号的注册时间有关,新注册的账号用的是wx2.qq.com,老账号用的是wx.qq.com

buf1024 commented 7 years ago

@songtianyi weixinBot 可以,你这个不可以。

我的意思是说,本质上,是模拟web 浏览器进行登录微信,只要web浏览器能正常登录使用,就不存在“腾讯认定为机器人”这一说法。

songtianyi commented 7 years ago

@lamproae @buf1024 已fix,感谢各位!,测试ok,麻烦告知下哈。

wsvn53 commented 7 years ago

我更新试了一下OK了,赞