Skype.getAllChats() не обнаруживает облачные групповые чаты
Я пытаюсь написать бота, который для начала прослушивает и регистрирует каждое сообщение, сказанное в облачном чате, то есть в чате, где команда \get name
возвращает строку с префиксом 19:
например, 19:f0ddd8dbc5b64372a2dd1de9f37f8689@thread.skype
в моем конкретном случае.
Однако я не могу заставить Skype4Java найти какие-либо облачные чаты, в которых я участвую.
Group[] groups = Skype.getContactList().getAllGroups();
Вышеприведенный список возвращает пустой список, даже когда присутствуют группы P2P.
Chat[] chats = Skype.getAllChats()
Выше приведены все чаты (групповые или индивидуальные), кроме облачного группового чата.
Skype4Java не может взаимодействовать с облачными чатами? Я знаю, что Skype4Py (эквивалент Python) не может. (Неподходящий дополнительный вопрос: есть ли API, которые взаимодействуют с облачными чатами?)
1 ответ
(Правка: Это ответ на себя после многих часов бесполезных исследований. Поднимите его в надежде, что он поможет какому-нибудь другому новичку в написании ботов.)
Skype4Java, Skype4Py и большинство других оболочек API не могут взаимодействовать с облачными чатами.
Там нет никакого обходного пути, кроме воссоздания желаемого чата с /createmoderatedchat
и добавление всех участников из предыдущего.
Единственная альтернатива, которую я смог найти, - это Skypeweb, библиотека, которая является частью Skype4Pidgin. Насколько я могу судить, он работает с облачными чатами. Однако документации очень мало.
Эта статья из Bitlbee Wiki может быть полезной. Описывает, как включить SkypeWeb в Bitlbee.