python - Skype4Py:无法授权传入的好友请求

标签 python linux skype skype4py

我正在尝试编写一个自动处理 Skype 授权请求的应用程序。最终目的是允许平台用户通过向特定于平台的 Skype 用户发送消息来附加和确认他们的个人 Skype 句柄。

具体来说,我感兴趣的是从应用用户的联系人列表中授权和删除用户。我已经彻底阅读了 Linux Skype4Py 的 Python 文档,但没有找到任何有用的方法。当我尝试覆盖未授权用户的 BuddyStatus 时,我得到:

for user in skype.UsersWaitingAuthorization:
    print "User: " + user.Handle + " " + str(user.BuddyStatus) # note that _GetBuddyStatus() works here
    if not user.ReceivedAuthRequest.startswith("special-marker"):
        user.BuddyStatus = -1;

Traceback (most recent call last):
  File "gn-discovery-skype.py", line 60, in <module>
    user.BuddyStatus = -1;
  File "/usr/local/lib/python2.7/dist-packages/Skype4Py/user.py", line 80, in _SetBuddyStatus
    self._Property('BUDDYSTATUS', int(Value), Cache=False)
  File "/usr/local/lib/python2.7/dist-packages/Skype4Py/user.py", line 19, in _Property
    return self._Owner._Property('USER', self.Handle, PropName, Set, Cache)
  File "/usr/local/lib/python2.7/dist-packages/Skype4Py/skype.py", line 311, in _Property
    self._DoCommand('SET %s %s' % (jarg, value), jarg)
  File "/usr/local/lib/python2.7/dist-packages/Skype4Py/skype.py", line 281, in _DoCommand
    raise SkypeError(int(errnum), errstr)
Skype4Py.errors.SkypeError: [Errno 518] Invalid status given for BUDDYSTATUS

会不会是 Skype(因为 Skype4Py 接受状态)实际上根本不允许控制用户授权,而将其严格留给实际的 Skype 用户?

最佳答案

如果你想从联系人列表中删除某人,你必须使用 1 而不是 -1
即使来自 skype.Friends BuddyStatus -1 的人也会引发错误。 试试吧。
但是如果你想将某人添加到联系人列表,你必须将 BuddyStatus 更改为 2
它有效:)

关于python - Skype4Py:无法授权传入的好友请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26237596/

相关文章:

linux - Telnet : How to remove NULL (0x00) after every CR (0x0d) on send, using char mode (interactive mode)?

python - 尝试将 JSON 解析为字典时出现问题

Python-Django : ifchanged template tag

regex - 正则表达式引擎位于何处?

linux - QT Creator 没有部署选项

stream - 关于流媒体,像 Skype 这样的程序如何工作?

python - Django 使用工厂函数从同一基类创建多个表/模型类

python - 根据文件名创建文件夹

java - 从 Java 发送时,Skype 消息在队列中待处理

android - 从另一个 Android 应用添加 Skype 联系人