Skype4py は引き続き動作しますが、グループ チャットにメッセージを送信する場合は注意が必要です。
グループ チャットが「クラウドベースのチャット」である場合、Skype4py はうまく機能しません。
参考: Skype FAQ - チャット コマンドと役割とは?
たとえば、次のスクリプトは正常に機能します。
# -*- coding: utf-8 -*-
import Skype4Py
user = 'username' # Allow chats from Skype4py bot account
skype = Skype4Py.Skype(Transport='x11')
skype.Attach()
chat = skype.CreateChatWith(user)
chat.SendMessage('hello!')
また、次のスクリプトもうまく機能します。
# -*- coding: utf-8 -*-
import Skype4Py
# p2p-based chat and Skype4py bot account had already joined group
group = '#botname/$username;1234567890abcdef'
skype = Skype4Py.Skype(Transport='x11')
skype.Attach()
for chat in skype.Chats :
if chat.Name == group :
chat.SendMessage('hello!')
ただし、次のスクリプトは機能しません。
# -*- coding: utf-8 -*-
import Skype4Py
# cloud-based chat and Skype4py bot account had already joined group
group = '19:1234567890abcdef1234567890abcdef@thread.skype'
skype = Skype4Py.Skype(Transport='x11')
skype.Attach()
for chat in skype.Chats :
if chat.Name == group :
chat.SendMessage('hello!')
理由は以下の通りです。
- Skype4py は、クラウドベースのチャットをうまく処理できません。
証拠として、次のスクリプトは p2p ベースのチャットのみを示しています。Skpe4py がクラウドベースのチャットに参加したとしても。
# -*- coding: utf-8 -*-
import Skype4Py
skype = Skype4Py.Skype(Transport='x11')
skype.Attach()
for chat in skype.Chats :
print chat
# Sample Output:
# <Skype4Py.chat.Chat with Name='#username/$1234567890abcdef'>
# <Skype4Py.chat.Chat with Name='#botname/$username;1234567890abcdef'>