2

我正在使用此示例代码通过 XMPP 连接到 Facebook Chat:

#!/usr/bin/python
import sleekxmpp
import logging
logging.basicConfig(level=logging.DEBUG)

def session_start(event):
    chatbot.send_presence()
    print('Session started')
    chatbot.get_roster()

def message(msg):
    if msg['type'] in ('chat','normal'):
        print('msg received')
        print(msg['body'])

        msg.reply('Thanks').send()

jid = 'myusername@chat.facebook.com'
password = 'mypassword'
server = ('chat.facebook.com', 5222)

chatbot = sleekxmpp.ClientXMPP(jid,password)
chatbot.add_event_handler('session_start', session_start)
chatbot.add_event_handler('message', message)
chatbot.auto_reconnect = True
chatbot.connect(server)
chatbot.process(block=True)

一切似乎都很好,但是当我运行该代码时,我无法连接到 Facebook 服务器:

DEBUG:sleekxmpp.basexmpp:setting jid to myusername@chat.facebook.com
DEBUG:sleekxmpp.basexmpp:Loaded Plugin (RFC-6120)  STARTTLS Stream Feature
DEBUG:sleekxmpp.basexmpp:Loaded Plugin (RFC-6120)  Resource Binding Stream Feature
DEBUG:sleekxmpp.basexmpp:Loaded Plugin (RFC-3920)  Start Session Stream Feature
DEBUG:sleekxmpp.basexmpp:Loaded Plugin (RFC-6120)  SASL Stream Feature
DEBUG:sleekxmpp.xmlstream.xmlstream:Trying to connect to chat.facebook.com:5222
DEBUG:sleekxmpp.xmlstream.xmlstream:Connecting to chat.facebook.com:5222
ERROR:sleekxmpp.xmlstream.xmlstream:Could not connect to chat.facebook.com:5222. Socket Error #111: Connection refused
DEBUG:sleekxmpp.xmlstream.xmlstream:Trying to connect to chat.facebook.com:5222
DEBUG:sleekxmpp.xmlstream.xmlstream:Waiting 1.97953654103 seconds before connecting.
...

我在这里错过了什么吗?

4

1 回答 1

3

您在脚本中正确执行了所有操作。这似乎是 Facebook 端的一个临时问题(如 暗示的那样Socket Error #111: Connection refused)。针对 Sleek 的 master 和 development 分支进行测试,您的脚本连接并登录对我来说很好。

看脸书的XMPP开发者关系群,最近没有任何中断的报告,所以不清楚目前服务情况如何。

作为额外说明,由于您正在处理 Facebook,如果您想使用X-FACEBOOK-PLATFORM身份验证方法,那么您可以设置:

chatbot.credentials['api_key'] = '...API_KEY...'
chatbot.credentials['access_token'] = '...TOKEN...'

如果您需要 Sleek 相关的帮助,别忘了还有 slim@conference.jabber.org 会议室。

——兰斯

于 2012-05-24T08:45:50.287 回答