gpt4 book ai didi

python - Skype4Py MessageStatus 未持续触发

转载 作者:太空狗 更新时间:2023-10-30 00:17:18 26 4
gpt4 key购买 nike

我正在尝试使用 Skype4Py 制作一个基本的 Skype 机器人,但遇到了一个相当严重的错误。我正在使用 32 位 Python 2.7.8 开发 64 位 Windows 7。安装,以及最新版本的 Skype4Py。

我的主要要求是该机器人具有 5 不同 Skype 聊天的概览:四个用户的四个单独聊天和一个所有四个用户都参与的公共(public)聊天。为此,我编写了两个不同的函数来处理个人回复和群聊:

class SkypeBot(object):
def __init__(self):
self.skype = Skype4Py.Skype(Events=self)
self.skype.Attach()
self.active_chat = find_conference_chat()

def MessageStatus(self, msg, status):
if status == Skype4Py.cmsReceived:
if msg.Chat.Name == self.active_chat.Name:
msg.Chat.SendMessage(respond_to_group(msg))
else:
msg.Chat.SendMessage(respond_to_individual(msg))
bot = SkypeBot()

上面的代码(还有很多,但它的核心已经写下来了)应该回答任何用户私下或在群聊中发送的每条消息。

但是,有一个问题。通常,这段代码工作得很好。该机器人会响应每个单独的用户以及群聊。然后,每隔一段时间(每 10 次聊天一次),机器人就会停止响应单个消息。 MessageStatus 函数根本没有触发,这让我觉得我可能需要捕捉其他一些事件。所以我向机器人添加了一个通用事件捕捉器:

    def Notify(self, notification):
print "NOTIFICATION:"
print notification
print "=========================="

这段代码的唯一目的是查看我是否遗漏了任何事件。所以我等了一会儿,当机器人没有响应时,我检查了函数的打印输出。

  • 通常,机器人会在消息到达时收到多个通知:聊天消息收到通知、聊天事件时间戳通知等。聊天消息收到的通知是最终触发 MessageStatus 事件的消息。
  • 在机器人没有响应的情况下,只收到一条通知。这是通知 CHAT **** ACTIVITY_TIMESTAMP ******。没有收到聊天消息的通知,因此没有要回复的消息。

当我手动单击我的 Skype 客户端并将我的窗口聚焦在收到的消息上时,MessageStatus 事件最终触发并且机器人响应,但为时已晚。


我的问题有几个部分:

  • 我的通用代码是否正确?如果 Skype4Py 完美运行,我的代码是否应该正常运行?
  • 其他人是否遇到过特定事件未触发的错误?
  • 如果遇到类似的错误,你解决了吗?如果没有,您是否至少发现了如何始终如一地重现此问题?我什至无法调试它,因为它突然出现并且无处不在...

最佳答案

不幸的是,这可能是 Skype API 中的错误。这help post表示正在撤销对该 API 的支持,表示:

Important: As communicated in this blog post, due to technology improvements we are making to the Skype experience, some features of the API will stop working with Skype for desktop. For example, delivery of chat messages using the API will cease to work. However, we will be extending support for two of the most widely used features – call recording and compatibility with hardware devices – until we determine alternative options or retire the current solution.

关于python - Skype4Py MessageStatus 未持续触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27035511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com