首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Skype4Py -如何成功添加联系人?

Skype4Py -如何成功添加联系人?
EN

Stack Overflow用户
提问于 2013-05-11 05:18:04
回答 2查看 2.3K关注 0票数 1

我正在努力用SkypeBot实现一些有趣的功能,我想实现的功能之一就是添加新联系人的能力。在查看Skype4Py文档时,我注意到了这种方法:

http://skype4py.sourceforge.net/doc/html/Skype4Py.client.Client-class.html#OpenAddContactDialog

我正在使用以下代码尝试访问它:

代码语言:javascript
复制
sky = Skype4Py.Skype()
client = Skype4Py.client.Client(sky)
sky.Attach()
client.OpenAddContactDialog("test")

然而,当尝试利用Skype4py.client.Client中的几乎所有东西时,我得到了回溯的超时:

代码语言:javascript
复制
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

我在client类中尝试访问的每个方法都会收到此超时错误。(即: OpenAuthorizationDialog,OpenCallHistoryTab,OpenContactsTab)。我访问此方法是否不正确,或者新版本的Skype不支持此方法?任何帮助使此工作,或通过Skype4Py成功添加联系人的方法将非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2013-05-11 06:01:37

代码语言:javascript
复制
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. search
  2. request add with a message
  3. wait for authorization

因此,尝试以下方法之一:(一种是在弹出结果时进行搜索和添加的异步方式,另一种是将结果捆绑在一起的方法)

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

所以试试吧:

代码语言:javascript
复制
sky = Skype4Py.Skype()
sky.Attach()
print skyp.SearchForUsers('Torxed')

应该会给你一个加我的句柄。在你收到的对象中,会有一个添加我的选项。

票数 3
EN

Stack Overflow用户

发布于 2016-03-14 13:12:06

@Torxed的回答是正确的,但这里有更多信息,以防有人无法到达最后一英里。

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

代码语言:javascript
复制
import Skype4Py
sky = Skype4Py.Skype()
sky.Attach()
requestMessage = "Please accept my request!"
searchResults = sky.SearchForUsers('echo123')
firstResult = searchResults[0]
firstResult.SetBuddyStatusPendingAuthorization(requestMessage)

一定要小心,因为这只是将搜索返回的第一个结果相加。如果你有确切的用户名,应该没问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16490965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档