Подписка XMPP Stanza Google Talk

Я пытаюсь отправить раздел подписки с a (a@gmail.com) на b(b@gmail.com), но сервер Google Talk XMPP не пересылает раздел (т. Е. B никогда его не получает).

Если я вхожу в Gmail с помощью a@gmail.com и приглашаю b@gmail.com, b@gmail.com получает раздел IQ, и это выглядит так:

<presence xmlns='jabber:client' from='a@gmail.com' type='subscribe' to='b@gmail.com'><sub:invitation xmlns:sub='google:subscribe'><sub:body/></sub:invitation></presence>  

[Обратите внимание, что from и to - это просто имена пользователей, а не полный JID, указывающий конкретный ресурс чата, такой как a@gmail.com/ABC145D]

Если я пытаюсь создать раздел присутствия, подобный тому, который получает b, когда он делает это через gmail, я получаю ошибку 'bad-request' с сервера GTalk XMPP:

If set, the 'from' attribute must be set to the user's full JID.    

Однако, если я попытаюсь а) указать полный "из" JID, б) полностью исключить "из" раздела, или в) указать полный JID для "из" и "в", ни один из них не сработает. Сервер GTalk XMPP не передает запрос на подписку о присутствии с a@gmail.com на b@gmail.com

1 ответ

Решение

Я получил его для работы со строфой следующей формы, а также добавив элемент в список (список друзей) перед запросом подписки

<presence xmlns='jabber:client' from='a@gmail.com' type='subscribe' to='b@gmail.com'><sub:invitation xmlns:sub='google:subscribe'><sub:body/></sub:invitation></presence> 
Другие вопросы по тегам