
페이스북 채팅에 연결하기 위해 Python으로 스크립트를 작성하려고 합니다. 나는 단지 할 수 없습니다. 코드는 다음과 같습니다.
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",))
내가 얻는 오류는 다음과 같습니다.
An error occurred while looking up _xmpp-client._tcp.chat.facebook.com
그리고 이것은 디버거 출력입니다.여기.
인증을 받았지만(Line 136) 여전히 메시지가 전송되지 않음을 보여줍니다. 나는 지금 며칠 동안 정말로 이것에 갇혀 있습니다.
답변1
@grawity가 지적했듯이 스크립트에 다음 코드를 추가하여 얻을 수 있는 JID를 가져와야 합니다.
서버 인증 후 코드에서 서버에 연락처 목록을 요청할 수 있습니다. 코드에 다음을 추가하세요.
C.sendInitPresence(requestRoster=1)
rosterobject = C.getRoster()
JID를 확인/인쇄하려면 다음 루프를 사용하여 이를 수행할 수 있습니다.
for i in rosterobject.getItems():
print i
명단 개체에는 JID라는 연락처가 있어야 합니다. 이제 다음 문에서 해당 JID를 사용하세요.
C.send(xmpp.Message("[email protected]","Hello world from script",))
이것이 귀하의 문제를 해결하기를 바랍니다.
답변2
username@chat.facebook.com
JID는 인증 중에만 유효합니다. 메시지를 보내려면 XMPP 목록에서 찾을 수 있는 JID를 사용해야 합니다 . (그러나 자신에게 메시지를 보내는 것은 작동하지 않습니다.)-profileid@chat.facebook.com