21

我正在寻找一种如何通过使用 XEP-0136 标准从谷歌服务器检索聊天消息存档的方法,但我得到这些结果只是试图请求该功能。

要求:

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

回复:

<iq xmlns="jabber:client" type="error" to="myEmail@gmail.com/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="myEmail@gmail.com/00230F07">
    <query xmlns="jabber:iq:privacy">
        <active name="invisible"/>
    </query>
</iq>

回复:

<iq xmlns="jabber:client" type="error" id="invisible1" to="myEmail@gmail.com/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>

所以可能我做错了什么。任何帮助将不胜感激。

4

3 回答 3

11

我也已经研究了很长时间了。正如 JoSo 已经指出的那样,似乎无法通过任何 XMPP 标准访问聊天历史记录。通过 XMPP 与聊天历史记录的唯一交互是通过非标准XMPP 扩展启用或禁用 Off-the-Record 。

话虽如此,官方的谷歌聊天客户端,如Chrome 扩展,他们那种废弃的Windows 客户端和 Android 应用程序都能够同步聊天。因此,必须至少有某种方式可以从外部访问聊天记录。但是,在任何地方都没有关于此功能的文档,并且 Google 论坛中的所有问题都没有得到解答。相当多的人猜测它可能通过 XEP-0136 实现,因为它是有道理的,但没有任何官方说法它也可能是一个完全专有的 XMPP 扩展。

对于不可见性,它是受支持的,但 Google 再次采用自己的方式,而不是使用 XEP-0016 扩展。在这种情况下,至少他们的方式记录在这里。因此,只需使用他们的 google:shared-status 命名空间来设置自己不可见。

话虽如此,在 Google 的聊天服务器上尝试任何 XMPP 扩展都是一种真正的痛苦,因为许多功能是专有的,使用它们自己的笨拙扩展而不是标准,或者根本没有实现。至少大量公共扩展的文档是相当不错的。

如果您正在寻找来自 Google 的官方答案,那么您也很幸运。第三方客户端(如 Pidgin)的大部分 Google Talk 功能已由开发人员进行了逆向工程。在您问之前,他们的音频/视频和文件传输扩展名也与当前标准相差甚远。

于 2012-08-31T06:43:33.577 回答
10

Google does safe your chat history. But it is stored in your Google Mail account and not on the XMPP Server, thus XEP-0136 is not available.

As for the status. You are trying to set privacy which is different from presence status as defined in rfc3921 (See http://xmpp.org/rfcs/rfc3921.html). Google does not implement privacy as defined in XEP-0126.

于 2012-08-29T12:06:07.463 回答
0

隐形实际上是通过谷歌特定的“共享状态”扩展设置的。

消息检索不通过 XMPP 公开。

于 2014-01-18T02:57:41.843 回答