Facebook XMPP имя IM с ресурса

Я использую FB XMPP, и я хотел бы знать, какой клиент использует пользователь. Если я использую чат Google Talk, я могу получить / установить его в атрибуте Ресурса. Но в чате FB это не работает. Это всегда пусто, хотя я установил это.

jid = [узел "@" ] домен [ "/" ресурс]

Использование agsXMPP:

Задавать: xmppClient.Resource = "::ISIM::";

Получить: presence.From.Resource

Google: id@gmail.com /:: ISIM:: 478f568d

Facebook: id@chat.facebook.com/

Как я могу узнать, что пользователь использует мой клиент? У кого-нибудь есть опыт?

2 ответа

Обнаружение служб и версия программного обеспечения не работают с серверами XMPP Facebook. Вот пример, я только что попытался отправить простое:

<iq xmlns="jabber:client" type="get" to="xxxxxxx@chat.facebook.com" 
id="5"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

и вот что отвечает фейсбук:

<iq from="xxxx@chat.facebook.com" to="xxxxxx@chat.facebook.com/xxxxxx" type="error" xml:lang="en" 
id="5"><query xmlns="http://jabber.org/protocol/disco#info"/><error code="503" 
type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-
stanzas"/></error></iq>

Для этого вы должны использовать обнаружение службы или версию клиента.
Увидеть:
XEP-0030: обнаружение службы
XEP-0092: версия программного обеспечения

Другие вопросы по тегам