如何使用 Smack API 实现 Google “Off the Record”
Posted
技术标签:
【中文标题】如何使用 Smack API 实现 Google “Off the Record”【英文标题】:How do I implement Google "Off the Record" with Smack API 【发布时间】:2012-04-02 20:01:33 【问题描述】:我有一个正在使用 gtalk 的 XMPP 聊天客户端。我不知道如何使用 Smack API 实现一些谷歌自定义扩展。
具体来说,我想将 google talk 用户设置设置为 archiveenabled = false,如下面的链接所述。
https://developers.google.com/talk/jep_extensions/usersettings
此外,如果我决定保留 archivingenabled= true 并尝试单独控制 google 关闭记录设置,我需要帮助监控和设置 google:nosave 状态,如以下链接所述:
https://developers.google.com/talk/jep_extensions/otr
我的问题是我无法弄清楚如何在代码中实现这些东西。 igniteRealtime 文档在以下链接中描述了该方法:
www.igniterealtime.org/builds/smack/docs/latest/documentation/providers.html (注意:http:// 已被删除,因为我超出了链接限制)
如果有任何关于如何编写这 2 个 google talk 扩展程序的示例,我将不胜感激。
谢谢! 马特
【问题讨论】:
【参考方案1】:首先创建一个扩展 IQ 的数据包以发送您的请求。然后可以使用SynchPacketSend() 发送。每个单独的命令都是要添加到此 IQ 数据包的扩展。
然后创建一个提供程序,如您提供的链接所示,将回复转换为您的自定义数据包类型。
您可以查看LeafNode.getItems() 请求作为示例。只需按照代码操作,它将向您展示如何创建和发送适当的 IQ 数据包。查看提供程序包以了解如何接收回复。
【讨论】:
谢谢罗宾,非常感谢您的帮助!以上是关于如何使用 Smack API 实现 Google “Off the Record”的主要内容,如果未能解决你的问题,请参考以下文章
当使用 Smack 4.1.0 API 作为 Google 的 GCM CCS 的 XMPP 客户端时,SecurityMode.required 不起作用