Python XMPP错误:SASL身份验证失败:<incorrectencoding/>

2024-05-16 14:41:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让tlsxmpp客户机在ubuntu14.04上使用python2.7.6。我启用了调试模式,在收到错误消息error Failed SASL authentification: <incorrect-encoding />之前,整个连接看起来都很正常。我已经通过桌面Jabber客户端验证了用户和密码帐户。这是我使用的代码。你知道为什么这样不行吗?公司名称:

#!/usr/bin/python

import xmpp

username= 'testxmpp'
passwd  = 'testtesttest'
to='jabber.somedomain.com'
msg='hello :)'



client = xmpp.Client('jabber.somedomain.com')
client.connect(server=('jabber.somedomain.com',5222))
client.auth(username, passwd, 'botty')
client.sendInitPresence()
message = xmpp.Message(to, msg)
message.setAttr('type', 'chat')
client.send(message)

这是程序调试输出的节选:

^{pr2}$

Tags: tocomclient消息message客户机错误username
1条回答
网友
1楼 · 发布于 2024-05-16 14:41:31

如果它帮助了其他人,则必须在/usr/lib/python2.7/dist-packages/xmpp/auth.py文件中进行编辑:

...
      elif "PLAIN" in mecs:
            sasl_data='%s\x00%s\x00%s'%(self.username+'@'+self._owner.Server,self.username,self.password)
            # ko - 2017-01-09 - fix for 'incorrect-encoding' error 
            # node=Node('auth',attrs={'xmlns':NS_SASL,'mechanism':'PLAIN'},payload=[base64.encodestring(sasl_data)])
            node=Node('auth',attrs={'xmlns':NS_SASL,'mechanism':'PLAIN'},payload=[base64.encodestring(sasl_data).replace('\r','').replace('\n','')]) 
        else:
...

https://github.com/normanr/xmpppy/blob/master/xmpp/auth.py

相关问题 更多 >