Ich habe einen Bot B
geschrieben, die Nachrichten von dem Client empfängt C1
und leitet sie an Client C2
, dh 2 Personen über das Gateway Bot
verbinden können.Ejabberd - Senden und Empfangen von Nachrichten über Bot
Ich verwende Sleekxmpp, eine Python-Client-XMPP-Bibliothek für den obigen Zweck.
import logging
from sleekxmpp import ClientXMPP
from sleekxmpp.exceptions import IqError, IqTimeout
class EchoBot(ClientXMPP):
def __init__(self, jid, password):
ClientXMPP.__init__(self, jid, password)
self.add_event_handler("session_start", self.session_start)
self.add_event_handler("message", self.message)
def session_start(self, event):
self.send_presence()
def message(self, msg):
if msg['type'] in ('chat'):
# receive message from the Client1
from, to = message['from'], message['to']
message = message['body']
# send message to Client2.
self.send_message(mto=recipient,
mbody=message,
mtype='chat')
if __name__ == '__main__':
xmpp = EchoBot('[email protected]', 'password')
xmpp.connect()
xmpp.process(block=True)
Jetzt das Problem, dass Client C2 die Nachricht von der BOT empfängt. Es sollte es lieber von Client C1 erhalten. Um das zu tun, brauche ich ein Passwort von C1, um C1 zu autorisieren, das ich nicht im Nachrichtentext habe, und es ist auch nicht sicher, ein Passwort im Körper zu senden.
Was ist der beste Ansatz, um ein Gateway BOT zu erstellen?