我在用python和XMPP尝试Gtalk机器人。
当我使用iChat应用程序ping bot时,我可以接收回响应。
但当我使用Hangouts ping时,我无法接收响应消息。但我仍然可以在服务器端日志中看到我的消息。

# -- coding: utf-8 -
import xmpp

user="BOTUSERNAME@gmail.com"
password="PASSWORD"
server=('talk.google.com', 5223)

def message_handler(connect_object, message_node):
        us = str(message_node.getFrom()).split('/')[0]
        if us == 'REALUSERNAME@gmail.com':
            us = us[0:4]
            print str(message_node)
            message = "Welcome to my first Gtalk Bot :) " + us
            s= str(message_node.getBody()).replace("\n", "\t")
            if s <> 'None' :
                print "MESSAGE: " + s
                connect_object.send(xmpp.Message( message_node.getFrom() ,message))

jid = xmpp.JID(user)
connection = xmpp.Client(jid.getDomain())
connection.connect(server)
result = connection.auth(jid.getNode(), password )

connection.RegisterHandler('message', message_handler)
connection.sendInitPresence()

while connection.Process(1):
    pass

这与gtalk不再支持XMPP有关吗?
我的Bot仍然能够接收消息,但我的Hangouts应用程序没有收到响应

最佳答案

我能解决这个问题。
您需要将typ = 'chat'属性添加到xmpp.Message

connect_object.send(xmpp.Message( message_node.getFrom() ,message, typ='chat' ))

现在我的gTalkBot从hangouts&ichat客户端回复我的消息。
多亏了这个stack overflow answer

07-28 02:10
查看更多