【问题标题】:How can I send a message to a group conversation with Skype4Py in Python如何在 Python 中使用 Skype4Py 向群组对话发送消息
【发布时间】:2013-06-18 18:15:21
【问题描述】:

我一直在尝试让我的脚本使用 Skype4Py 库向 Skype 中的群组对话发送消息,我目前能够发送消息的唯一方法是发送给特定用户。

import Skype4Py
Skype = Skype4Py.Skype()
Skype.Attach()
Skype.SendMessage('namehere','testmessage')

有谁知道如何更改我的代码以向群组对话发送消息?

【问题讨论】:

    标签: python python-2.7 sendmessage skype4py


    【解决方案1】:

    下面的小脚本应该可以工作。 (假设您已经打开了一个群聊)

    def sendGroupChatMessage():
        """
        Send Group Chat Messages.
        """
        import Skype4Py as skype
        skypeClient = skype.Skype()
        skypeClient.Attach()
        for elem in skypeClient.ActiveChats:
            if len(elem.Members) > 2:
                elem.SendMessage("SomeMessageHere")
    

    我基本上是在导入所有当前聊天,检查成员数量并相应地发送消息。在各个组中也应该很容易检查。

    要获取句柄,请将您的函数更改为此。

    def sendGroupChatMessage():
        """
        Send Group Chat Messages.
        """
        import Skype4Py as skype
        skypeClient = skype.Skype()
        skypeClient.Attach()
        for elem in skypeClient.ActiveChats:
            if len(elem.Members) > 2:
                for friend in elem.Members:
                      print friend.Handle
                elem.SendMessage("SomeMessageHere")
    

    如果您可以为聊天添加书签,那么您只需这样做。

    >>> groupTopic = 'Insert a Topic Here'
    >>> for chat in skypeClient.BookmarkedChats:
            if chat.Topic == groupTopic:
                chat.SendMessage("Send a Message Here")
    

    这是应该独立的最终代码

    def sendGroupChatMessage(topic=""):
        """
        Send Group Chat Messages.
        """
        import Skype4Py as skype
        skypeClient = skype.Skype()
        skypeClient.Attach()
        messageSent = False
        for elem in skypeClient.ActiveChats:
            if len(elem._GetMembers()) > 2 and elem.Topic == topic:
                elem.SendMessage("SomeMessageHere")
                messageSent = True
    
        if not messageSent:
            for chat in skypeClient.BookmarkedChats:
                if chat.Topic == topic:
                    chat.SendMessage("SomeMessageHere")
                    messageSent = True
    
        return messageSent
    

    【讨论】:

    • 你有那个组中用户的句柄吗?
    • 你可以用什么来识别组?你有 blob、主题、成员句柄吗?
    • 正在进行激活。添加了如何找到句柄。
    • 是的。问你是否有主题,你可以这样做,elem.Topic,因为_funcName 函数被认为是私有的。我也不应该打电话给那些,修复。
    • 然后,您可以通过主题或成员来决定组。我仍然不知道如何复兴一个旧团体。
    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多