xmpp机器人如何接受新朋友?

1 投票
1 回答
580 浏览
提问于 2025-04-17 10:47

我有一个用Python写的简单聊天机器人,它使用了xmpppy这个库(通过import xmpp引入)。这个机器人可以读取命令,并把结果返回给执行命令的人,运行得很好。

我想让这个机器人自动接受新的好友请求和联系人。

有没有什么建议呢?

附注:下面是代码的一部分:

self.cl = xmpp.Client(self.jid.getDomain(),debug=[])
    syslog.syslog("Conectando...")
    if not self.cl.connect(("jabber.org",5222)):
        raise IOError("No se pudo conectar con el server")
    syslog.syslog("Autenticando...")
    if not self.cl.auth(self.jid.getNode(),self.password):
        raise IOError("No se pudo autenticar el usuario")
    syslog.syslog("Registrando handler...")
    self.cl.RegisterHandler("message",self.messageHandler)
    self.cl.sendInitPresence()
def messageHandler(self,conn,mess):
    user = mess.getFrom().getStripped()
    text = mess.getBody()
    if text=="time":
        self.send(user,"Aqui son las " + datetime.datetime.now().strftime('%H:%M:%S'))
    elif text=="date":
        self.send(user,"Hoy es " + datetime.datetime.now().strftime("%d/%m/%Y"))
    elif text=="help":
        self.send(user,"Ayuda:\n - Para obtener la hora escribe: 'time'\n - Para obtener la fecha escribe: 'date'")

1 个回答

2

在GitHub上,有一个非常有用的示例项目,使用了xmpp,由efcjoe创建。你想要的方法叫做add_friend,它从第99行开始:

def add_friend(self, user):
    self._send(xmpp.Presence(to=user, typ='subscribed'))
    self._send(xmpp.Presence(to=user, typ='subscribe'))
    return True

撰写回答