ไม่สามารถเชื่อมต่อกับ Facebook Chat ผ่าน Python โดยใช้ไลบรารี xmpppy


1

ฉันกำลังพยายามเขียนสคริปต์ในหลามเพื่อเชื่อมต่อกับการแชทของ Facebook ฉันแค่ไม่สามารถ นี่คือรหัส:

import xmpp
FACEBOOK_ID = "firesofmay@chat.facebook.com"
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("gmjain@chat.facebook.com","Hello world from script",))

นี่เป็นข้อผิดพลาดที่ฉันได้รับ:

An error occurred while looking up _xmpp-client._tcp.chat.facebook.com

และนี่คือเอาต์พุตดีบักเกอร์ ที่นี่ .

ซึ่งแสดงให้เห็นว่าฉันได้รับการรับรองความถูกต้องแล้ว (Line 136) แต่ก็ยังไม่ได้ส่งข้อความใด ๆ ฉันติดอยู่ที่นี่มาหลายวันแล้ว

คำตอบ:


0

ตามที่ @grawity ชี้ให้เห็นคุณจะต้องได้รับ JID ซึ่งคุณสามารถรับได้โดยการเพิ่มรหัสต่อไปนี้ลงในสคริปต์ของคุณ

ในรหัสของคุณหลังจากตรวจสอบสิทธิ์กับเซิร์ฟเวอร์คุณสามารถขอรายชื่อผู้ติดต่อจากเซิร์ฟเวอร์ได้ ในรหัสของคุณเพิ่มสิ่งนี้

C.sendInitPresence(requestRoster=1)
rosterobject = C.getRoster()

หากคุณต้องการตรวจสอบ / พิมพ์ KID คุณสามารถทำได้ด้วยการวนซ้ำต่อไปนี้

for i in rosterobject.getItems():
    print i

ในวัตถุบัญชีรายชื่อคุณควรมีรายชื่อติดต่อ JID ตอนนี้ใช้ JID นั้นในคำสั่งถัดไป

C.send(xmpp.Message("jidfromrosterobj@domain.tld","Hello world from script",))

ฉันหวังว่านี่จะช่วยแก้ปัญหาของคุณ


0

ชื่อผู้ใช้ @ chat.facebook.com KID นั้นใช้ได้ในระหว่างการตรวจสอบสิทธิ์เท่านั้น สำหรับการส่งข้อความคุณต้องใช้ - profileid @ chat.facebook.com KID ซึ่งคุณสามารถค้นหาได้จากบัญชีรายชื่อ XMPP ของคุณ (การส่งข้อความถึงตัวคุณเองนั้นใช้งานไม่ได้)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.