Closed qcrao closed 7 years ago
看上去应该是你注册消息时用了错误的参数。
Bot.register() 方法的第一个参数,不可为 Chats
,因为 Chats
并非具体的聊天对象类,而是多个聊天对象合集的类,本质上是个 list
。
如果需要注册所有的聊天对象,该参数应留空,或为 None
或为 bot.chats()
(但通常没必要这么写)
对,我传了一个list进去,list里面有4个Friend。
改成传Friend就OK了。
如果我想对多个朋友使用图灵机器人,是否只需要def多个函数就可以了,然后分别传参?
不需要,传一个包含需要监听的聊天对象的列表进去就可以了。但不应该报错。 麻烦发一下你的代码。
from wxpy import *
bot = Bot()
my_friend = []
my_friend.append(bot.friends().search('XXX'))
my_friend.append(bot.friends().search('XXX'))
my_friend.append(bot.friends().search('XXX'))
my_friend.append(bot.friends().search('XXX'))
tuling = Tuling(api_key='c8fb9fcf82ab45b089dcbef18181e4e5')
# 使用图灵机器人自动回复指定好友
@bot.register(my_friend)
def reply_my_friend(msg):
tuling.do_reply(msg)
bot.start()
.search() 得到的结果是 Chats(list) 类型 所以注册时,my_friend 是一个由 4 个 Chats(list) 组成的 list: [[xxx], [xxx], [xxx], [xxx]]
应把每个 bot.friends().search('XXX') 改为 ensure_one(bot.friends().search('XXX'))
关于 ensure_one
的用法
http://wxpy.readthedocs.io/zh/latest/utils.html#wxpy.ensure_one
好的,了解,谢谢~~
测试图灵机器人的出错信息:
怎么解决?谢谢~~