2016-09-29 114 views
0

我使用Node.js的谷歌API的客户在谷歌创建文件驱动正常,当我创建文件,一切工作正常,这里有一个例子:谷歌驱动API V3创建共享文件

drive.files.create({ 
     resource: { 
     name: 'Another File 5', 
     mimeType: 'text/plain', 
     }, 
     media: { 
     mimeType: 'text/plain', 
     body: 'It\'s Another Fucking File', 
     } 

    }, function(err,result){ 
     if(err) console.log(err) 
     else console.log(result) 
    }); 

现在我想创建一个共享"shared": true它给我这个错误:

drive.files.create({ 
    resource: { 
    name: 'Another File 5', 
    mimeType: 'text/plain', 
    "shared": true 
    }, 
    media: { 
    mimeType: 'text/plain', 
    body: 'It\'s Another Fucking File', 
    } 

}, function(err,result){ 
    if(err) console.log(err) 
    else console.log(result) 
}); 

错误:

{ [Error: The resource body includes fields which are not directly writable.] 
    code: 403, 
    errors: 
    [ { domain: 'global', 
     reason: 'fieldNotWritable', 
     message: 'The resource body includes fields which are not directly writable.' } ] } 

我试着这在谷歌API浏览器,并给出了相同的错误。

我是新的谷歌API,并感谢任何帮助。

回答

1

请求主体create上没有shared属性。已经讨论过这个问题

在Drive API文档的Share Files部分讨论了它,您需要拨打drive.permissions.create并设置您要共享的帐户的相应权限。

我也在API Explorer上测试了它,它工作正常。

var fileId = '1sTWaJ_j7PkjzaBWtNc3IzovK5hQf21FbOw9yLeeLPNQ'; 
drive.permissions.create({ 
    resource: { 
     'type': 'user', 
     'role': 'writer', 
     'emailAddress': '[email protected]' 
    }, 
     fileId: fileId, 
     fields: 'id', 
    }, function(err, res) { 
    if (err) { 
     // Handle error 
     console.log(err); 
    } else { 
     console.log('Permission ID: ', res.id) 
     drive.permissions.create({ 
      resource: { 
       'type': 'domain', 
       'role': 'reader', 
       'domain': 'appsrocks.com' 
      }, 
      fileId: fileId, 
      fields: 'id', 
      }, function(err, res) { 
       if (err) { 
       // Handle error 
       console.log(err); 
      } else { 
       console.log('Permission ID: ', res.id) 
      } 
     }); 
    } 
}); 
+0

我知道'drive.permissions.create'并已经使用这个,我只是想知道这是可能的,显然它不是。 – user1086010

相关问题