2

我有用于 python 的 slimXMPP,并且我使用 API 创建了发送消息的函数,虽然当我研究接收它们时我找不到任何东西,有人可以帮我解决这个问题,或者反驳这种可能性。谢谢。下面是我用来发送消息的代码,如果有帮助的话。

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

顺便说一句,我使用 .cfg 文本文件作为用户电子邮件和密码,以及一些联系人,然后将其解析为

4

1 回答 1

3

我看到您正在使用send_client.py示例。该示例的目的是如何可靠地登录、发送一条消息,然后注销。您的用例是发送和接收消息,因此查看echo_client.py示例会更好。

值得注意的是,为了接收消息,您将执行以下操作:

# 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'])

同样,您需要从使用SendMsgBot示例切换,因为它在发送消息后会自动断开连接。

如果您需要任何帮助,请不要忘记sslough@conference.jabber.org 聊天室。

——兰斯

于 2012-10-29T17:38:48.380 回答