
Estou tentando escrever um script em python para conectar-me ao chat do Facebook. Eu simplesmente não sou capaz. Aqui está o código:
import xmpp
FACEBOOK_ID = "[email protected]"
PASS = "password"
jid=xmpp.protocol.JID(FACEBOOK_ID)
C=xmpp.Client(jid.getDomain(),debug=['always'])
if not C.connect(("chat.facebook.com",5222)):
raise IOError('Can not connect to server.')
if not C.auth(jid.getNode(),PASS):
raise IOError('Can not auth with server.')
C.send(xmpp.protocol.Message("[email protected]","Hello world from script",))
Este é o erro que recebo:
An error occurred while looking up _xmpp-client._tcp.chat.facebook.com
E esta é a saída do depuradoraqui.
O que mostra que fui autenticado (Linha 136), mas ainda assim a mensagem não foi enviada de alguma forma. Estou realmente preso nisso há dias.
Responder1
Como @grawity apontou, você precisa obter os JIDs que podem ser obtidos adicionando o código a seguir ao seu script.
No seu código, após a autenticação no servidor, você pode solicitar ao servidor a lista de contatos. No seu código adicione isto,
C.sendInitPresence(requestRoster=1)
rosterobject = C.getRoster()
Se você quiser apenas verificar/imprimir os JIDs, você pode fazer isso com o seguinte loop.
for i in rosterobject.getItems():
print i
No objeto lista, você deve ter contatos, também conhecidos como JIDs. Agora use esse JID na próxima instrução,
C.send(xmpp.Message("[email protected]","Hello world from script",))
Espero que isso resolva o seu problema.
Responder2
username@chat.facebook.com
JIDs são válidos apenas durante a autenticação. Para enviar mensagens você deve usar JIDs, que você pode descobrir em sua lista XMPP. (Enviar uma mensagem para si mesmo não funciona.)-profileid@chat.facebook.com