我正在努力使用SkypeBot实现一些有趣的功能,我想要实现的功能之一是添加新联系人的功能。在查看Skype4Py文档时,我注意到了这种方法:
http://skype4py.sourceforge.net/doc/html/Skype4Py.client.Client-class.html#OpenAddContactDialog
我正在使用以下代码尝试访问此内容:
sky = Skype4Py.Skype()
client = Skype4Py.client.Client(sky)
sky.Attach()
client.OpenAddContactDialog("test")
然而,当尝试利用Skype4py.client.Client中的几乎任何东西时,我得到了跟踪的超时:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "build/bdist.macosx-10.8-intel/egg/Skype4Py/client.py", line 164, in OpenDialog
self._Skype._DoCommand('OPEN %s' % tounicode(' '.join(params)))
File "build/bdist.macosx-10.8-intel/egg/Skype4Py/skype.py", line 276, in _DoCommand
self.SendCommand(command)
File "build/bdist.macosx-10.8-intel/egg/Skype4Py/skype.py", line 778, in SendCommand
self._Api.send_command(Command)
File "build/bdist.macosx-10.8-intel/egg/Skype4Py/api/darwin.py", line 395, in send_command
raise SkypeAPIError('Skype command timeout')
SkypeAPIError: Skype command timeout
我尝试在客户端类中访问的每个方法都收到此超时错误。 (即: OpenAuthorizationDialog,OpenCallHistoryTab,OpenContactsTab)。我是否错误地访问了此方法,或者新版本的Skype可能不支持该方法?任何帮助实现这项工作,或通过Skype4Py成功添加联系人的方法将非常感激。
答案 0 :(得分:3)
sky = Skype4Py.Skype()
sky.Attach()
client = Skype4Py.client.Client(sky)
client.OpenAddContactDialog("Torxed")
尝试了一些事情,但我99%确定这是你必须做的事情的顺序。 否则,您将超时,因为在您开始执行API之前,附件需要时间来附加。
另请看一下:
你也可能以错误的方式解决这个问题。 直接添加Skype用户不是Skype的工作方式。
因此,请尝试以下方法之一: (一个是asyncore搜索和添加的方式,因为它们弹出,另一个将聚集你的结果)
所以试试:
sky = Skype4Py.Skype()
sky.Attach()
print skyp.SearchForUsers('Torxed')
应该让你一个把握我的手柄。 在您收到的对象中,可以选择添加我。
答案 1 :(得分:0)
@Torxed的回答是对的,但是如果有人无法将其作为最后一英里,那么这里有更多的信息。
我能够以这种方式添加联系人:
import Skype4Py
sky = Skype4Py.Skype()
sky.Attach()
requestMessage = "Please accept my request!"
searchResults = sky.SearchForUsers('echo123')
firstResult = searchResults[0]
firstResult.SetBuddyStatusPendingAuthorization(requestMessage)
请注意,因为这只会添加搜索返回的FIRST结果。如果您的用户名是完全正确的,则应该没问题。