我正在努力通过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添加联系人的方法,将不胜感激。

最佳答案

sky = Skype4Py.Skype()
sky.Attach()

client = Skype4Py.client.Client(sky)
client.OpenAddContactDialog("Torxed")


尝试一些事情,但是我99%确信那是您必须要做的事情的顺序。
否则,您将超时,因为附件需要时间来附加,然后才开始对API执行操作。

还可以看看:


http://skype4py.sourceforge.net/doc/html/Skype4Py.user.User-class.html#SetBuddyStatusPendingAuthorization
http://skype4py.sourceforge.net/doc/html/Skype4Py.skype.SkypeEvents-class.html#UserAuthorizationRequestReceived


另外,您可能会以错误的方式进行操作。
直接添加Skype用户不是Skype的工作原理。


搜索
请求添加一条消息
等待授权


因此,请尝试以下操作之一:
(一种是异步的搜索和添加方法,当它们弹出时,另一种将结果捆绑在一起)


http://skype4py.sourceforge.net/doc/html/Skype4Py.skype.Skype-class.html#AsyncSearchUsers
http://skype4py.sourceforge.net/doc/html/Skype4Py.skype.Skype-class.html#SearchForUsers


因此,请尝试:

sky = Skype4Py.Skype()
sky.Attach()
print skyp.SearchForUsers('Torxed')


例如,应该帮您添加我。
在您收到的对象中,将有一个添加我的选项。

10-07 13:45