2

Skype4py は Skype デスクトップ API を使用しますか? その API は Microsoft によって削除された (または削除されている) ようです1

これが skype4py プロジェクトにどのように影響するか知っている人はいますか?


1 「デスクトップ API とは何ですか?」Skype FAQ には次のように書かれています。

このブログ投稿でお知らせしたように、Skype エクスペリエンスに加えているテクノロジの改善により、API の一部の機能がデスクトップ用 Skype で動作しなくなります。たとえば、API を使用したチャット メッセージの配信は機能しなくなります。

4

1 に答える 1

0

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'>
于 2015-05-01T19:35:58.400 に答える