0

我有一个实时应用程序并获得合作者,doc.getCollaborators()这给了我一个数组 []doc来自类型gapi.drive.realtime.Document

在此处输入图像描述

根据API 参考isOwner,如果当前协作者是实时文档的所有者,则没有类似的字段显示“ doc

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

如果我尝试使用google drive api referencegapi.client.drive.permissions.list中的建议:

    function retrievePermissions(fileId, callback) {
        var request = gapi.client.drive.permissions.list({
            'fileId': fileId
        });
        request.execute(function (resp) {
            callback(resp.items);
        });
    }


    retrievePermissions(self.realtimeDocId, function (resp) {
        resp;


        });

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

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

4

2 回答 2

0

您可能想检查您是如何放置代码的,根据文档,您可以将 Realtime API 集成到 Drive 平台。

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

有关与 Google Drive 中的文件交互的更多信息,请参阅Google Drive Integration

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

驱动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);
  });
}

对于实时 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;
  }

希望这些信息有所帮助。

于 2017-02-21T06:18:37.520 回答
0

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

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

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

于 2017-02-21T02:46:11.440 回答