【问题标题】:Skype4Py - How to successfully add a contact?Skype4Py - 如何成功添加联系人?
【发布时间】:2013-05-05 15:38:49
【问题描述】:

我正在努力使用 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

我在客户端类中尝试访问的每个方法都收到此超时错误。 (IE: OpenAuthorizationDialog、OpenCallHistoryTab、OpenContactsTab)。我是否错误地访问了此方法,或者新版本的 Skype 不支持该方法?非常感谢任何有关使其正常工作的帮助,或通过 Skype4Py 成功添加联系人的方法。

【问题讨论】:

  • 首先,1:创建API的hook,2:定义on_message等函数,3: 执行.Attach()。然后你打开一个客户端句柄并添加对话框。

标签: python add contact skype skype4py


【解决方案1】:
sky = Skype4Py.Skype()
sky.Attach()

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

尝试了一些事情,但我 99% 确定这是你必须做的事情的顺序。 否则,您将超时,因为在您开始对 API 执行操作之前,附件需要时间来附加。

还请看:

另外,您可能会以错误的方式处理此问题。 直接添加 Skype 用户,不是 Skype 的工作方式。

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

因此,请尝试以下方法之一: (一种是在弹出时搜索和添加的异步方式,另一种会合并您的结果)

那就试试吧:

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

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

【讨论】:

  • 感谢您的回复,但是您上面提到的方法不起作用,我仍然收到超时。试图搞乱搜索,然后请求,但到目前为止仍然超时。
  • @ljlozano 是在 Attach() 上出现错误吗?您使用的是哪个 Python、skype4Py 和 Skype 版本?您知道您需要安装和启动Skype吗?除非您已经下载了 SDK,否则这是一项可怕的工作..
  • 任何使用“客户端”对象的错误。我正在使用 Python 2.7,Skype4Py-1.0.32.1-py2.7.egg。 Skype 已安装并正在运行。我可以向我的联系人发送消息,给他们打电话,并利用 Skype4Py 的所有其他功能,除了客户端对象上的任何内容,不幸的是,这似乎是添加联系人的唯一方法。 @Torxed
【解决方案2】:

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

我可以通过这种方式添加联系人:

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

请务必小心,因为这只会添加搜索返回的 FIRST 结果。如果你有确切的用户名,应该没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多