2

Skype4py 是否使用 Skype 桌面 API?该 API 似乎已经(或正在)被 Microsoft 1删除。

有人知道这如何影响 skype4py 项目吗?


1 “什么是桌面 API?” 在 Skype 常见问题解答上说:

正如本文中所述,由于我们正在对 Skype 体验进行技术改进,API 的某些功能将停止与桌面版 Skype 一起使用。例如,使用 API 传递聊天消息将停止工作。

4

1 回答 1

0

Skype4py 仍然可以工作,但是,发送消息到群聊时,需要注意。

如果群聊是“基于云的聊天”,Skype4py 不能正常工作。

供参考:Skype 常见问题 - 什么是聊天命令和角色?

例如,以下脚本正常工作:

# -*- 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 回答