Skip to content
This repository has been archived by the owner on Aug 5, 2020. It is now read-only.

wxpy.exceptions.ResponseError: err_code: -1001; err_msg: \u65e0\u6cd5\u627e\u5230\u5bf9\u5e94\u7684\u6210\u5458 #57

Closed
alliswella opened this issue May 18, 2017 · 6 comments
Labels

Comments

@alliswella
Copy link

wxpy.exceptions.ResponseError: err_code: -1001; err_msg:无法找到对应的成员

Exception in thread _listen:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\ProgramData\Anaconda3\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\bot.py", line 467, in _listen
self._process_message(msg)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\bot.py", line 410, in _process_message
config = self.registered.get_config(msg)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\messages\registered.py", line 26, in get_config
if not conf.enabled or (conf.except_self and msg.sender == self.bot.self):
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\messages\message.py", line 287, in sender
return self._get_chat_by_user_name(self.raw.get('FromUserName'))
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\messages\message.py", line 337, in _get_chat_by_user_name
_chat = match_in_chats(self.bot.groups())
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\utils\misc.py", line 74, in wrapped
ret = Groups(ret)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\chats\groups.py", line 17, in init
filter(lambda x: x.bot.self in x, group_list)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\chats\groups.py", line 17, in
filter(lambda x: x.bot.self in x, group_list)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\chats\group.py", line 39, in contains
for member in self.members:
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\chats\group.py", line 33, in members
raw_member_list() or raw_member_list(True)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\chats\group.py", line 27, in raw_member_list
self.update_group()
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\api\chats\group.py", line 109, in update_group
super(Group, self).init(do(), self.bot)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\utils\misc.py", line 50, in wrapped
smart_map(check_response_body, ret)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\utils\misc.py", line 185, in smart_map
return func(i, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\wxpy\utils\misc.py", line 31, in check_response_body
raise ResponseError(err_code=err_code, err_msg=err_msg)
wxpy.exceptions.ResponseError: err_code: -1001; err_msg: \u65e0\u6cd5\u627e\u5230\u5bf9\u5e94\u7684\u6210\u5458

麻烦大神们给看看是咋回事

@alliswella
Copy link
Author

title = 'wxpy'
version = '0.3.9.6'
author = 'Youfou'
license = 'MIT'
copyright = '2017, Youfou'

@ghost
Copy link

ghost commented May 31, 2017

回退到0.3.9.5就好了

@runbing
Copy link

runbing commented May 31, 2017

出现了和楼主一样的问题,按照 @ch3n2k 的提示,降级到 0.3.9.5 后,目前错误没再出现。

@youfou
Copy link
Owner

youfou commented Jun 4, 2017

@cherish1896 @ch3n2k @runbing
抱歉,-1001 错误与我在 0.3.9.6 版本中的一个改动有关,现已在开发分支中修复。

安装开发分支:

pip3 install -U git+https://github.com/youfou/wxpy.git@develop

@youfou
Copy link
Owner

youfou commented Jun 4, 2017

这个问题也和Web微信的一个BUG有关,具体表现为:

当从接口获取群列表时,会返回一些不存在的或者已经离开的群,但这些群的群成员为陌生人,或干脆为空的。

我们可以把这些不应存在的群称为: shadow group

因此我在 0.3.9.6 版本中增加了验证“群有效性”的逻辑,来过滤 shadow group:

在获取到群列表后,判断各个群中是否包含机器人自身,包含才认为有效

然而,我没有考虑到的是,在 wxpy 中还有两个受影响的逻辑:

  1. 当尝试访问一个空群成员列表时(一些成员数量非常多的群会默认返回空成员列表),会先请求更新 这个群成员列表
  2. 每当有新的群消息到达时,会尝试通过微信提供的 FromUserName 在机器人已知的群列表中进行比较,来判断来自哪个群

因此,当机器人中存在成员列表为空的 shadow group 时,wxpy 会在每次收到群消息时,去请求更新这些 shadow group。

高频的群成员列表更新请求,会导致微信返回 1205 错误,当然也会因此不返回我们本来需要的请成员列表。

而 itchat 不会因为 1205 错误直接抛出异常,而是因为另一个原因:获取不到所需的成员列表而返回 -1001 错误。

PS:

若在一小时内使用过先前版本,可能仍然会出现 -1001,停止使用并登出Web微信一小时后即可恢复。

@youfou youfou added the bug label Jun 4, 2017
@youfou youfou closed this as completed Jun 6, 2017
@sandy8508
Copy link

0.3.9.8最新版本己经包含这个fix了么? @youfou

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants