Получаване на онлайн присъствие за Facebook Chat

Използвам libpurple, за да се свържа с FB чата. Проблемът е, че не получавам онлайн присъствие от приятели, които са онлайн чрез мобилното приложение на Facebook.

Но ако такъв приятел ми изпрати съобщение, получавам едновременно съобщението и онлайн присъствието му.

Изглежда така:

(14:23:08) jabber: Recv (ssl)(191): <message from="[email protected]"     to="[email protected]/b94353f3_4CE87B53BB319" type="chat"><composing  xmlns="http://jabber.org/protocol/chatstates"/></message>

(14:23:10) jabber: Recv (ssl)(188): <message from="[email protected]"   to="[email protected]/b94353f3_4CE87B53BB319" type="chat"><active   xmlns="http://jabber.org/protocol/chatstates"/></message>

(14:23:11) jabber: Recv (ssl)(166): <presence from="[email protected]" to="[email protected]/b94353f3_4CE87B53BB319"><x xmlns="vcard-temp:x:update"><photo/></x></presence>

Така че се чудя дали вината е моя или ограничението при внедряването на Facebook Chat.


person Ronnix    schedule 15.11.2012    source източник


Отговори (1)


Мисля, че ще има забавяне на актуализациите за присъствие. Може би можете да проверите това, като помолите приятелите си да не изпращат съобщение и изчакате присъствието да се промени. От страницата за разработчици на чат във Facebook [1] изглежда, че ще има забавяне, след което присъствието ще се актуализира, когато го промените.

Също така, от същата страница, едно от ограниченията е, че Facebook чат сървърът не поддържа сонди за присъствие. XMPP сървър изпраща проби за присъствие към контактите, ако все още няма информация за присъствие на контактите, след като потребителят влезе и изпрати първоначалното присъствие (вижте раздел 5.1.1 от RFC 3921 [2] и раздел 4.3.1 от RFC 6121 [3]).

Ако сървърът не може да изпрати сонди за присъствие, той може да няма информация за присъствие на контактите. Не знам как е внедрен сървърът за чат във facebook, но предполагам, че когато контактът направи нещо (като изпращане на съобщение/актуализиране на присъствието), сървърът приема, че контактът е онлайн и изпраща присъствието. (Може да греша тук, някой да ме поправи, ако греша!)

Препратки:

[1] http://developers.facebook.com/docs/chat/

[2] http://xmpp.org/rfcs/rfc3921.html

[3] http://xmpp.org/rfcs/rfc6121.html

person Krishna Chaitanya P    schedule 17.11.2012