我正在寻找一种如何通过使用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服务器肯定支持的隐身也是如此。
请求:
<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>
所以我可能做错了什么。任何帮助将不胜感激。
答案 0 :(得分:11)
我一直在研究这个问题已有一段时间了。正如JoSo已经指出的那样,似乎没有办法通过任何XMPP标准访问聊天记录。通过XMPP可以与聊天记录进行的唯一交互是通过非标准XMPP extension启用或禁用非正式记录。
话虽如此,官方Google聊天客户端(例如Chrome extension),他们被遗弃的Windows client和Android应用程序都可以同步聊天。因此,必须至少有一些方法可以从外部访问聊天记录。但是,此处没有关于此功能的文档,Google论坛中的所有问题都没有得到答复。相当多的人猜测它可能是通过XEP-0136实现的,因为它是有意义的,但没有任何官方的话,它也可能是一个完全专有的XMPP扩展。
对于隐身,它受支持,但Google再次使用own way而不是使用XEP-0016扩展程序。在这种情况下,至少以他们的方式记录here。因此,只需使用他们的google:shared-status命名空间来设置自己隐身。
尽管如此,尝试使用Google的聊天服务器进行任何XMPP扩展都是一件非常痛苦的事情,因为许多功能都是专有的,使用他们自己的笨拙扩展而不是标准,或者根本没有实现。至少手动充满公共扩展的文档非常好。
如果你正在寻找谷歌的官方答案,你也很幸运。第三方客户端(如Pidgin)的大多数Google Talk功能都由开发人员进行了逆向工程。在您提出要求之前,他们的音频/视频和文件传输扩展也远远超出了现行标准。
答案 1 :(得分:10)
Google会确保您的聊天记录安全。但它存储在您的Google Mail帐户中,而不是存储在XMPP服务器上,因此XEP-0136不可用。
至于状态。您正尝试设置与rfc3921中定义的状态不同的隐私(请参阅http://xmpp.org/rfcs/rfc3921.html)。 Google未按照XEP-0126中的规定实施隐私。
答案 2 :(得分:0)
隐身实际上是通过Google特定的"shared status"扩展程序设置的。
不通过XMPP公开消息检索。