Google 实时未记录的功能:'toJson'?

Google Realtime undocumented feature: 'toJson'?

在 Google 实时模型对象上有一个方法 'toJson',从 Document.getModel()

返回
doc.getModel().toJson()

似乎有两个参数,但 Google 开发人员或其他地方没有可用的文档。应该如何使用?

所以你最后的评论勾起了我的记忆。虽然没有记录,但我认为这实际上是以下 Drive API 调用的终点:https://developers.google.com/drive/v2/reference/realtime/get。这有点奇怪,因为它不在实时 API 下,而是记录在驱动器 API 下,但您既可以导出为 JSON 也可以导入 JSON 结构。大概 toJson 函数会吐出兼容 JSON 以与这些函数一起使用,但我没有测试过这个。

编辑:另外 - 看起来他们有更多有趣的未记录的功能,这些功能与此密切相关。特别是 gapi.drive.realtime.loadFromJson 可用,这大概是 toJson 的实际加载对应物。还有公开的 gapi.drive.realtime.newInMemoryDocument fn,它可能是一个内部函数,用于初始化从 'loadFromJson' 加载的文档。此外还有 'Document.isinGoogleDrive' 这很可能决定您使用的是内存文档还是驱动器支持的文档。有趣的东西:).

我们正在努力更新我们的文档,但我可以提供一个简短的摘要:

toJson(opt_appId, opt_revision) 将实时模型转换为 JSON 表示形式,其格式与导出 REST 端点 return 相同的格式 (https://developers.google.com/drive/v2/reference/realtime/get). You can upload that JSON to the import REST endpoint (https://developers.google.com/drive/v2/reference/realtime/update) 更新现有实时文档或创建新文档。如果您提供 opt_appId 或 opt_revision,它们将传递给 returned JSON。导出 REST 端点自动提供这些值,但导入端点忽略它们,因此它们是可选的,仅供您参考。

gapi.drive.realtime.loadFromJson(json) 从 JSON 创建内存中实时文档。 JSON 可以来自 toJson() 或来自导出 REST 端点。内存中的文档从不与实时服务器通信(isInGoogleDrive 始终为 false)因此您有责任使用 toJson() 和您想要的任何存储(例如 HTML5 本地存储,存储在您的服务器上,或任何其他可以存储 JSON) 的东西。

gapi.drive.realtime.newInMemoryDocument() 创建一个新的空白内存文档。与 loadFromJson() 一样,此内存中文档未同步到 Google 驱动器,因此您有责任保留它。

内存中的文档像任何其他实时文档一样触发事件侦听器,并且大多数 API 工作正常,包括 undo/redo。但是,没有协作,数据不会自动存储,并且某些功能(例如 getCollaborators())return 通用数据而不是用户特定数据。

我们将很快发布更多文档,但这是受支持的功能,不是内部功能 API。