Skype4Py - 如何成功添加联系人?(Skype4Py - How to successfu

2019-09-26 11:19发布

我的工作来实现与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成功地增加了触点的方法,任何帮助将是非常赞赏。

Answer 1:

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的是不如何工作的。

  1. 搜索
  2. 请求与消息添加
  3. 等待授权

所以,请尝试以下之一:(一个是搜索和添加,因为他们弹出,对方会帮你的结果的asyncore方式)

  • 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')

应该让你的句柄,加我为实例。 在你收到的对象,会有加我为实例的选项。



Answer 2:

@ Torxed的答案是正确的,但这里的更多信息的情况下,任何人都无法使其成为最后一英里。

我能以这种方式添加联系人:

import Skype4Py
sky = Skype4Py.Skype()
sky.Attach()
requestMessage = "Please accept my request!"
searchResults = sky.SearchForUsers('echo123')
firstResult = searchResults[0]
firstResult.SetBuddyStatusPendingAuthorization(requestMessage)

千万要小心,虽然,因为这仅仅是增加了搜索返回的第一个结果。 如果你有确切的用户名,就应该罚款。



文章来源: Skype4Py - How to successfully add a contact?