Архив сервера чата Google (XEP-0136)

Я ищу способ, как получить архив сообщений чата с сервера Google с помощью стандарта XEP-0136, но я получил эти результаты, просто пытаясь запросить эту функцию.

Запрос:

<iq type="get"><pref xmlns="urn:xmpp:archive"/></iq>

Ответ:

<iq xmlns="jabber:client" type="error" to="[email protected]/9FF72CA7">
    <pref xmlns="urn:xmpp:archive"/>
        <error code="501" type="cancel">
            <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
        </error>
</iq>

Так что похоже, что Google не реализует эту функцию, но так ли это? Я так не думаю.

То же самое произошло с попыткой установить невидимость, которая определенно поддерживается сервером Google.

Запрос:

<iq type="set" id="invisible1" from="[email protected]/00230F07">
    <query xmlns="jabber:iq:privacy">
        <active name="invisible"/>
    </query>
</iq>

Ответ:

<iq xmlns="jabber:client" type="error" id="invisible1" to="[email protected]/00230F07">
    <query xmlns="jabber:iq:privacy">
        <active name="invisible"/>
    </query>
    <error code="501" type="cancel">
        <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
    </error>
</iq>

Так что наверное я что-то не так делаю. Любая помощь будет оценена.


person Vanya    schedule 21.08.2012    source источник
comment
Почему сервер Google XMPP должен вам врать?   -  person Flow    schedule 22.08.2012
comment
Я просто предполагаю, потому что моя история чата включена.   -  person Vanya    schedule 22.08.2012


Ответы (3)


Я тоже уже довольно давно изучаю это. Похоже, как уже указывал Джосо, что нет никакого способа получить доступ к истории чата через какой-либо стандарт XMPP. Единственное взаимодействие с историей чата, которое возможно через XMPP, — это включение или отключение Off-the-Record через нестандартный Расширение XMPP.

При этом официальные клиенты Google Chat, такие как расширение Chrome их заброшенный клиент для Windows и приложение для Android умеют синхронизировать чаты. Таким образом, должен быть хоть какой-то способ доступа к истории чата извне. Однако нигде нет документации по этой функции, и все вопросы на форумах Google остаются без ответа. Многие люди предполагают, что это может быть реализовано через XEP-0136, поскольку в этом есть смысл, но без каких-либо официальных слов это также может быть полностью проприетарным расширением XMPP.

Для невидимости это поддерживается, но Google снова использует своим способом вместо использования расширения XEP-0016. По крайней мере, их способ задокументирован здесь в этом случае. Таким образом, просто используйте их пространство имен google:shared-status, чтобы сделать себя невидимым.

При всем при этом пробовать любые расширения XMPP с чат-серверами Google — настоящая проблема, поскольку многие функции являются проприетарными, используют собственные неудобные расширения вместо стандартных или просто не реализованы. По крайней мере, документация для нескольких общедоступных расширений довольно хороша.

Если вы ищете официальные ответы от Google, вам тоже повезло. Большинство функций Google Talk сторонних клиентов, таких как Pidgin, были переработаны разработчиками. Прежде чем вы спросите, их расширения для аудио/видео и передачи файлов также довольно далеко от текущего стандарта.

person BinaryBucks    schedule 31.08.2012

Google сохраняет вашу историю чатов. Но он хранится в вашей учетной записи Google Mail, а не на сервере XMPP, поэтому XEP-0136 недоступен.

Что касается статуса. Вы пытаетесь установить конфиденциальность, отличную от статуса присутствия, определенного в rfc3921 (см. http://xmpp.org/rfcs/rfc3921.html). Google не обеспечивает конфиденциальность, как это определено в XEP-0126.

person konqi    schedule 29.08.2012
comment
Привет, ДжоСо, хорошо, теперь я понимаю. Насчет невидимости вы не правы. Если вы прочтете XEP-0126 Невидимость xmpp.org/extensions/xep-0126.html , вы обнаружите, что это правильный путь, но, как и в первом случае, Google, вероятно, поступил не так. Спасибо. - person Vanya; 01.09.2012
comment
Невидимость определена в XEP-0126, но Google не реализует XEP-0126. Однако Google реализует rfc3921, потому что без него он не был бы чат-клиентом. BinaryBucks предлагает много текста и несколько ссылок о том, как это делает Google. Я извиняюсь за то, что не написал много прозы, и рекомендую ответ BinaryBucks. - person konqi; 03.09.2012

На самом деле невидимость устанавливается с помощью специального расширения Google "shared status".

Извлечение сообщений не доступно через XMPP.

person Ivan Vučica    schedule 18.01.2014