如何在谷歌谈话中使用wokkel :(错误twisted.words.protocols.jabber.sasl.SASLNoAcceptableMechanism)

时间:2012-03-30 02:52:38

标签: python xmpp twisted google-talk wokkel

我尝试了here给出的答案。查看了问题here,并找到了表明这完全没有希望的事情here

我已经尝试升级我的openssl(macports)并尝试安装pyopenssl(macports。)虽然我之前遇到过macports的问题,但我已经成功使用了xmpppy和sleekxmpp。因此,我不得不怀疑wokkel和google talk之间是否存在某种不兼容性(如第三个链接所示)。这对我来说似乎很奇怪,因为google talk(据我所知)是一种非常流行的通信媒介。

我的问题是,自2008年以来,是否有人成功让wokkel与谷歌谈话合作,如果是的话,怎么做?

这就是我所拥有的:

from twisted.words.xish import domish
from wokkel.xmppim import MessageProtocol, AvailablePresence

class EchoBotProtocol(MessageProtocol):
  def connectionMade(self):
      print "Connected!"

      # send initial presence
      self.send(AvailablePresence())

  def connectionLost(self, reason):
      print "Disconnected!"

  def onMessage(self, msg):
      print str(msg)

      if msg["type"] == 'chat' and hasattr(msg, "body"):
          reply = domish.Element((None, "message"))
          reply["to"] = msg["from"]
          reply["from"] = msg["to"]
          reply["type"] = 'chat'
          reply.addElement("body", content="echo: " + str(msg.body))

          self.send(reply)

from twisted.application import service
from twisted.words.protocols.jabber import jid
from wokkel.client import XMPPClient

application = service.Application("echobot")

xmppclient = XMPPClient(jid.internJID("someuser@example.com/echobot"), "pass")
xmppclient.logTraffic = False
echobot = EchoBotProtocol()
echobot.setHandlerParent(xmppclient)
xmppclient.setServiceParent(application)

1 个答案:

答案 0 :(得分:1)

我能够通过安装pyOpenSSL来解决这个问题。