2

このサンプル コードを使用して、XMPP 経由で Facebook チャットに接続しています。

#!/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 のマスター ブランチと開発ブランチの両方に対してテストすると、スクリプトが接続して正常にログインします。

FacebookのXMPP Developer Relationsグループを見ていると、最近サービス停止の報告がなく、現在のサービス状況がどうなっているのかわかりません。

追加のメモとして、Facebook を扱っているため、X-FACEBOOK-PLATFORM認証方法を使用する場合は、次のように設定できます。

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

Sleek 関連のヘルプが必要な場合は、sleek@conference.jabber.org ルームもあることを忘れないでください。

-- ランス

于 2012-05-24T08:45:50.287 に答える