使用sleekXMPP或python中的其他客户端接收GChat消息?

时间:2012-10-29 15:45:54

标签: python client google-talk

我有用于python的sleekXMPP,我已经使用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

btw我使用.cfg文本文件作为用户电子邮件和密码,以及一些联系人,然后在

中解析

1 个答案:

答案 0 :(得分: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示例,因为它会在发送消息后自动断开连接。

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

- Lance