Verbindung zum Facebook-Chat über Python nicht möglich, Bibliothek xmpppy wird verwendet

Verbindung zum Facebook-Chat über Python nicht möglich, Bibliothek xmpppy wird verwendet

Ich versuche, ein Skript in Python zu schreiben, um mich mit dem Facebook-Chat zu verbinden. Ich schaffe es einfach nicht. Hier ist der Code:

import xmpp
FACEBOOK_ID = "[email protected]"
PASS = "password"

jid=xmpp.protocol.JID(FACEBOOK_ID)

C=xmpp.Client(jid.getDomain(),debug=['always'])

if not C.connect(("chat.facebook.com",5222)):
    raise IOError('Can not connect to server.')

if not C.auth(jid.getNode(),PASS):
    raise IOError('Can not auth with server.')

C.send(xmpp.protocol.Message("[email protected]","Hello world from script",))

Dies ist der Fehler, den ich erhalte:

An error occurred while looking up _xmpp-client._tcp.chat.facebook.com

Und dies ist die Debugger-AusgabeHier.

Das zeigt, dass ich authentifiziert werde (Zeile 136), aber die Nachricht wird trotzdem irgendwie nicht gesendet. Ich stecke jetzt schon seit Tagen fest.

Antwort1

Wie @grawity angemerkt hat, müssen Sie die JIDs abrufen. Dies können Sie erreichen, indem Sie Ihrem Skript den folgenden Code hinzufügen.

In Ihrem Code können Sie nach der Authentifizierung beim Server den Server nach der Kontaktliste fragen. Fügen Sie in Ihrem Code Folgendes hinzu:

C.sendInitPresence(requestRoster=1)
rosterobject = C.getRoster()

Wenn Sie nur die JIDs überprüfen/drucken möchten, können Sie dies mit der folgenden Schleife tun.

for i in rosterobject.getItems():
    print i

Im Dienstplanobjekt sollten Sie Kontakte, auch JIDs genannt, haben. Verwenden Sie diese JID nun in der nächsten Anweisung.

C.send(xmpp.Message("[email protected]","Hello world from script",))

Ich hoffe, das löst Ihr Problem.

Antwort2

username@chat.facebook.comJIDs sind nur bei der Authentifizierung gültig. Zum Senden von Nachrichten müssen Sie JIDs verwenden, die Sie Ihrem XMPP-Verzeichnis entnehmen können. (Das Senden einer Nachricht an sich selbst funktioniert allerdings nicht.)-profileid@chat.facebook.com

verwandte Informationen