google realtime api / drive api - >获取实时文档

时间:2017-02-20 17:10:43

标签: javascript google-drive-api google-drive-realtime-api google-realtime-api

我有一个实时应用,并通过doc.getCollaborators()与合作者联系,这样我就可以从[{1}}类型中找到一个数组[] doc

enter image description here

根据API Reference,没有像gapi.drive.realtime.Document这样的字段向我显示当前合作者是否是实时文档“isOwner”的所有者

我的问题如何找出doc的协作者所具有的角色。 在API文档中,我发现:“Realtime API支持所有者,读者和作者角色”

如果我尝试使用google drive api reference建议的doc

gapi.client.drive.permissions.list

然后我收到以下错误消息:

  

实时加载回调错误:TypeError:无法读取属性   未定义TypeError的'permissions':无法读取属性   未定义的'权限'

2 个答案:

答案 0 :(得分:0)

要使用驱动器API,您必须将其与Realtime API分开加载。

window.gapi.client.load('drive', 'v3', function ()
{
    // Run your code here.
});

获取权限列表后,您可以使用从RealtimeDoc :: getCollaborators调用返回的每个用户的权限ID。

答案 1 :(得分:0)

您可能希望根据documentation检查您的代码放置方式,您可以将Realtime API集成到云端硬盘平台。

  

实时文档附加到存储在Google云端硬盘中的文件。因此,您的应用应使用Drive REST API与云端硬盘文件进行互动。例如,要创建新文件,请使用Drive REST API中的files.insert方法。要检索已存在的文件,请使用files.get方法。

     

有关与Google云端硬盘中的文件进行互动的详情,请参阅Google Drive Integration

至于代码实现,您可以检查CodeMirror Collaboration with Google Drive Realtime Api

Drive API:

/**
 * Creates a new Realtime file.
 * @param title {string} title of the newly created file.
 * @param callback {Function} the callback to call after creation.
 */
rtclient.createRealtimeFile = function(title, callback) {
  gapi.client.load('drive', 'v2', function() {
    gapi.client.drive.files.insert({
      'resource': {
        mimeType: rtclient.REALTIME_MIMETYPE,
        title: title
      }
    }).execute(callback);
  });
}

对于Realtime API:

// We have a file ID in the query parameters, so we will use it to load a file.
  if (fileId) {
    gapi.drive.realtime.load(fileId, this.onFileLoaded, this.initializeModel, handleErrors);
    return;
  }

希望此信息有所帮助。