Seite 1 von 1

Python+XMPP+MUC

Verfasst: Sonntag 31. Oktober 2021, 17:12
von U32
Hallo zusammen!

Ich brauche dringend eure Unterstützung. Ich bin völlig verzweifelt...
Das senden einer XMPP-Nachricht aus einem Python Script heraus an einen einzelnen Empfänger, war relativ einfach und funktioniert auch gut.
Nun möchte ich aber eigentlich Statusmeldungen an ein Gruppe von Empfängern senden.

Ich durchsuche dazu seit Wochen schon diverse Foren und Hilfeseiten, wie z.B.:
1.) https://xmpp.org/extensions/xep-0045.html
2.) http://tmp.marmaro.de/www.ioexception.d ... index.html
3.) https://www.nsoftware.com/kb/xml/09270707.rst
4.) https://stackoverflow.com/questions/112 ... ing-xmpppy
5.) https://www.generacodice.com/de/articol ... mpp-senden
6.) https://stackoverflow.com/questions/113 ... hon-xmpppy

um nur einige zu nennen.
Am Anfang hört sich alles immer "ganz einfach" an (z.B.: Titelzeile), aber am Ende des Tages wird die Nachricht einfach nicht gesendet.
Ich werde noch wahnsinnig!!!
Der folgende Code läuft so durch:

Code: Alles auswählen

#!/usr/bin/python3
# -*- coding: utf-8 -*-

# -------------------- Import Bibliotheken --------------------------------
import sys,time,xmpp


def sendMessageToGroup(server, user, pwd, room, nick, text):
    # ---------------- Authentifizierung ----------------------------------
    jid = xmpp.protocol.JID(user)
    user= jid.getNode()
   
    # ---------------- Verbindung zum Server herstellen -------------------
    conn = xmpp.Client(server, debug=[])
    connection = conn.connect()
    
    if not connection:
        print ('connection failed')
        sys.exit(1)
    
    # ---------------- Am Server anmelden ---------------------------------    
    login = conn.auth(user=jid.getNode(), password=pwd)
    
    if not login:
        print ('authentication failed')
        sys.exit(1)

    # ---------------- Presence im Chat-Raum anmelden ----------------------

    Raum ="%s/%s" % (room, nick)

    #initial_presence = conn.sendInitPresence()
    join = xmpp.protocol.Presence(to=Raum, xmlns='http://jabber.org/protocol/muc')
    print(join)


    # ---------------- Nachricht für diesem Chat-Raum vorbereiten ---------

    msgObj = xmpp.protocol.Message(to=Raum, body=text)
    print(msgObj)   
    
    try:
        conn.send(msgObj)
        
    except Exception as error:
        print(error)

    # ---------------- Verbindung zum Server wieder trennen ---------------
    time.sleep(3)   
    conn.disconnect()
    print('Done.')

# -------------------- Hauptprogramm --------------------------------------
if __name__ == "__main__":
    
    # ---------------- Variablen initialisieren ---------------------------
    server = 'jabber.de'
    user = '<Benutzername>@jabber.de'
    pwd = '<VollDasGeheimePasswort>'

    room = '<Chatroom>@conference.jabber.de'
    nick = 'Wartezimmer'

    text = 'Hallo Welt!'
    
    # ---------------- Funktionsaufruf ------------------------------------
    sendMessageToGroup(server, user, pwd, room, nick, text)

Das bedeutet aber auch keine Fehlermeldung, aber die "Hallo Welt" -Nachricht wird trotzdem nicht gesendet.
Kann mir bitte jemand von euch helfen und mir sagen, was ich falsch gemacht, oder vergessen habe?

Vielen Dank im Voraus!

Beste Grüße und Happy Halloween
U32

Re: Python+XMPP+MUC

Verfasst: Freitag 26. November 2021, 14:29
von U32
Fast 1700 "Views" innerhalb eines Monats und keine Antwort???
Ist mein Problem wirklich soooo speziell?

Viele Grüße
U32

Re: Python+XMPP+MUC

Verfasst: Freitag 26. November 2021, 19:38
von rogerb
Hast du mal das Tutorial versucht:
https://xmpp.readthedocs.io/en/latest/tutorial.html

Re: Python+XMPP+MUC

Verfasst: Sonntag 28. November 2021, 16:47
von U32
Hallo @rogerb,

Vielen Dank für den Tip. Leider habe ich auf der Seite keine passenden Hinweise gefunden.

Beste Grüße
U32

Re: Python+XMPP+MUC

Verfasst: Dienstag 30. November 2021, 12:44
von __deets__
Ich habe mir das damals angeschaut, aber ohne, dass man das selbst aufsetzt, wird man da nur durch Dokumentation durchackern nicht weiter kommen. Ich wuerde versuchen mich an die Autoren der Bibliothek oder ein XMPP-spezifisches Forum zu wenden.