我有一个实时应用,并通过doc.getCollaborators()
与合作者联系,这样我就可以从[{1}}类型中找到一个数组[] doc
:
根据API Reference,没有像gapi.drive.realtime.Document
这样的字段向我显示当前合作者是否是实时文档“isOwner
”的所有者
我的问题如何找出doc
的协作者所具有的角色。
在API文档中,我发现:“Realtime API支持所有者,读者和作者角色”
如果我尝试使用google drive api reference建议的doc
:
gapi.client.drive.permissions.list
然后我收到以下错误消息:
实时加载回调错误:TypeError:无法读取属性 未定义TypeError的'permissions':无法读取属性 未定义的'权限'
答案 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;
}
希望此信息有所帮助。