Вопрос

I have sleekXMPP for python and I have used the API to create functions to send messages, although when I researched into receiving them I can't find anything, can someone please help me to work this out, or disprove the possibility. Thanks. Below is the code I used to send Messages, If its any help.

to = config.get('usermap', to[4:])
gmail_from_user = config.get('auth', 'email')
gmail_from_secret = config.get('auth', 'secret')

sys.stdout = stdouttmp
sys.stderr = stderrtmp
print "Sending chat message to " + to
xmpp = SendMsgBot(gmail_from_user, gmail_from_secret, to, message)
xmpp.register_plugin('xep_0030') # Service Discovery
xmpp.register_plugin('xep_0199') # XMPP Ping

sys.stdout = stdouttmp
if xmpp.connect(('talk.google.com', 5222)):
    xmpp.process(block=True)
else:
    sys.stdout = stdouttmp
    print("Unable to connect.")

sys.stdout = stdouttmp
sys.stderr = stderrtmp

btw I'm using a .cfg text file for the users email and password, along with some contacts, which is then parsed in

Это было полезно?

Решение

I see that you're using the send_client.py example. The intent of that example is how to reliably log in, send a single message, and then log out. Your use case is to both send and receive messages, so you would be better served looking at the echo_client.py example.

Notably, in order to receive a message you would do:

# in your __init__ method:
def __init__(...):
    # ...
    self.add_event_handler('message', self.recv_message)

def recv_message(self, msg):
    # You'll probably want to ignore error and headline messages.
    # If you want to handle group chat messages, add 'groupchat' to the list.
    if msg['type'] in ('chat', 'normal'):
        print "%s says: %s" % (msg['from'], msg['body'])

Again, you will need to switch from using the SendMsgBot example because it automatically disconnects after sending its message.

Don't forget that there is the sleek@conference.jabber.org chat room if you need any help.

-- Lance

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top