在python中使用skpy在Skype中发送消息

时间:2018-01-19 15:07:16

标签: python skype

场景:我正在尝试找出一种使用python代码在Skype中发送快速测试消息的方法。从文档(https://pypi.python.org/pypi/SkPy/0.1)我得到了一个片段,应该允许我这样做。

问题:我按预期重新填充了这些信息,但在尝试创建与skype的连接时遇到错误:

sk = Skype(username, password)

我明白了:

  

SkypeAuthException :("无法从登录响应"中检索t字段,   )

我不知道这个错误意味着什么。

问题:有关如何解决此问题的想法吗?

代码:这基本上就是我使用的,加上我的用户名和密码:

from skpy import Skype
sk = Skype(username, password) # connect to Skype

sk.user # you
sk.contacts # your contacts
sk.chats # your conversations

ch = sk.contacts["joe.4"].chat # 1-to-1 conversation

ch.sendMsg(content) # plain-text message

问题2:有没有办法做到这一点,密码和用户名不应该在代码中?例如,是否可以使用已在该计算机中打开的Skype实例?

2 个答案:

答案 0 :(得分:1)

如果您最近在其他地方登录,可能看起来您已被阻止服务器的IP。这对我有用。

from skpy import Skype
loggedInUser = Skype("userName", "password")
print(loggedInUser.users)               // loggedIn user info
print(loggedInUser.contacts)            // loggedIn user contacts

PS:skpy版本:0.8.1

答案 1 :(得分:0)

尝试一下:

def connect_skype(user, pwd, token):
    s = Skype(connect=False)
    s.conn.setTokenFile(token)
    try:
        s.conn.readToken()
    except SkypeAuthException:
        s.conn.setUserPwd(user, pwd)
        s.conn.getSkypeToken()
        s.conn.writeToken()
    finally:
        sk = Skype(user, pwd, tokenFile=token)
    return sk

token参数可以是一个空文件,但是您需要先创建才能使用此功能。该功能将在该文件中写入客户端令牌。

如果问题仍然存在,请尝试在线登录S​​kype,有时需要更新一些信息,然后重试。