使用skype4py制作基本的Skype机器人 - 如何检查聊天中发送的消息?

0 投票
1 回答
2275 浏览
提问于 2025-04-29 20:13

我正在尝试制作一个简单的Skype机器人,想让它在特定的聊天中发送消息时,能够轮流发送三条不同的消息。不过,我现在还在想怎么让它检测到聊天中有新消息发送。

到目前为止,我已经做了:

import Skype4Py as skype
skypeClient = skype.Skype()
skypeClient.Attach()
def sendGroupChatMessage(topic="Topic"):
    messageSent = False
    messagenum = 0
    for elem in skypeClient.ActiveChats:
        if (messagenum == 0):
            elem.SendMessage("I see")
            messagenum = 1
            messageSent = True
        elif (messagenum == 1):
            elem.SendMessage("That's amazing")
            messagenum = 2
            messageSent = True
        elif (messagenum == 2):
            elem.SendMessage("It's not your fault")
            messagenum = 0
            messageSent = True
    if not messageSent:
        for chat in skypeClient.BookmarkedChats:
            if chat.Topic == topic:
                chat.SendMessage("SomeMessageHere")
                messageSent = True

    return messageSent

if skypeClient.OnMessageStatus == 'RECEIVED':
    sendGroupChatMessage()
暂无标签

1 个回答

3

你需要注册一个事件叫做 MessageStatus。
这里有更多信息可以查看。

下面是一个示例代码,它的功能是把消息重新发送给发件人(就像回声一样):

import Skype4Py

skype = Skype4Py.Skype()
skype.Attach()

def onMsg(msg, status):
  if status == Skype4Py.cmsReceived:
    msg.Chat.SendMessage(msg.Body)

skype.RegisterEventHandler('MessageStatus', onMsg)
while 1: pass

撰写回答