pandolia / qqbot

QQBot: A conversation robot base on Tencent's SmartQQ
Other
3.68k stars 876 forks source link

无法正常登陆 #23

Closed k3rw1n closed 7 years ago

k3rw1n commented 7 years ago

登录完毕后自动获取好友的阶段,会报错 myqqbot = MyQQBot() myqqbot.Login()

[2017-01-02 14:29:45] [CRITICAL] 第9次请求“http://s.web2.qq.com/api/get_friend_uin2?tuin=3986980927&type=1&vfwebqq=e7a87df220aa820b9665e9f48131c4eead54d3f070ef11cabb7449e5c0a9953b75877841276051b8&t=0.21578024993083011”时出现“超时”,终止 QQBot
[2017-01-02 14:29:45] [CRITICAL] 手动登录失败!
An exception has occurred, use %tb to see the full traceback.

详细堆栈如下

---------------------------------------------------------------------------
SystemExit                                Traceback (most recent call last)
<ipython-input-5-d5839ba10bb8> in <module>()
----> 1 bot.Login()

/Users/killerhack/.pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/qqbot/qqbot.pyc in Login(self)
     55         INFO(self.conf.qq and '开始自动登录...' or '开始手动登录...')
     56         if not self.conf.qq or not self.autoLogin():
---> 57             self.manualLogin()
     58         INFO('登录成功。登录账号:%s (%d)', self.nick, self.qqNum)
     59 

/Users/killerhack/.pyenv/versions/anaconda2-4.1.1/lib/python2.7/site-packages/qqbot/qqbot.pyc in manualLogin(self)
     72         except RequestError:
     73             CRITICAL('手动登录失败!')
---> 74             sys.exit(1)
     75 
     76     def autoLogin(self):

SystemExit: 1

反复尝试都是这个问题,而且是获取好友到一半的时候会发生这个问题,并非网络问题

pandolia commented 7 years ago

主要是获取好友 qq 那里会返回 502 错误,应该是腾讯服务器的限制,以前都没这个问题。暂时可以把第 552 行这里的 nTO < 9 改大一点,多试几次。

        if nCE < 5 and nTO < 9 and nUE < 3 and nDE <= repeatOnDeny:
            DEBUG('第%d次请求“%s”时出现“%s”, html=%s',
                  nCE+nTO+nUE+nDE, url, errorInfo, repr(html))
        else:
            CRITICAL('第%d次请求“%s”时出现“%s”,终止 QQBot',
                     nCE+nTO+nUE+nDE, url, errorInfo)
            raise RequestError # (SystemExit)

如果还是不行,那就在上面的 else 下面加:

            if url.startswith('http://s.web2.qq.com/api/get_friend_uin2'):
                return {'account': -1}

先返回一个无效qq号码。

暂时先这样解决。

k3rw1n commented 7 years ago

ok,那我可以pull一个request把这个加到exception部分去吗

发自网易邮箱大师 在2017年01月02日 17:41,pandolia 写道:

主要是获取好友 qq 那里会返回 502 错误,应该是腾讯服务器的限制,以前都没这个问题。暂时可以把第 552 行这里的 nTO < 9 改大一点,多试几次。

    if nCE < 5 and nTO < 9 and nUE < 3 and nDE <= repeatOnDeny:
        DEBUG('第%d次请求“%s”时出现“%s”, html=%s',
              nCE+nTO+nUE+nDE, url, errorInfo, repr(html))
    else:
        CRITICAL('第%d次请求“%s”时出现“%s”,终止 QQBot',
                 nCE+nTO+nUE+nDE, url, errorInfo)
        raise RequestError # (SystemExit)

如果还是不行,那就在上面的 else 下面加:

        if url.startswith(''http://s.web2.qq.com/api/get_friend_uin2'):
            return {'account': -1}

先返回一个无效qq号码。

暂时先这样解决。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

pandolia commented 7 years ago

好。

k3rw1n commented 7 years ago

问题中的问题已在最新的代码中得到修复,感谢原作者pandolia,他的代码考虑的更为周到,我很喜欢这个项目,很荣幸可以被merge

pandolia commented 7 years ago

不客气。也感谢您的帮助!