Как использовать wokkel с Google Talk: (ошибка twisted.words.protocols.jabber.sasl.SASLNoAcceptableMechanism) - PullRequest
1 голос
/ 30 марта 2012

Я попробовал ответ, данный здесь . Посмотрел проблему здесь и нашел что-то, указывающее на то, что это совершенно безнадежно здесь

Я уже пытался обновить мой openssl (macports) и пытался установить pyopenssl (macports.) Хотя раньше у меня были проблемы с macports, у меня были успехи с xmpppy и sleekxmpp. Следовательно, я должен задаться вопросом, существует ли какая-то несовместимость между wokkel и google talk (как предлагается в третьей ссылке). Это кажется мне странным, поскольку google talk является (насколько я знаю) очень популярным средством общения.

У меня вопрос просто: удалось ли кому-нибудь успешно работать с Google Talk с 2008 года, и если да, то как?

Вот что у меня есть:

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 Ответ

1 голос
/ 06 апреля 2013

Мне удалось решить эту проблему, установив pyOpenSSL.

...