我修改了来自Google Drive API Quickstart for Node.js的代码,发现here尝试为Google云端硬盘中的现有文件创建新权限。
无论我在代码中做了什么改变,我总是得到相同的回答说The permission type field is required
,即使我已经通过resource
指定它,如npm googleapis
client library的文档和我发现的其他示例中所述。
这只是不起作用还是我错过了一些明显的东西?
function updateFilePermissions(auth) {
var drive = google.drive({
version: 'v3',
auth: auth
});
var resourceContents = {
role: 'writer',
type: 'user',
emailAddress: '[email protected]'
};
drive.permissions.create({
resource: resourceContents,
fileId: aValidFileId,
sendNotificationEmail: false,
fields: 'id',
}, function(err, res) {
if (err) {
// Handle error...
console.error(err);
} else {
console.log('Permission ID: ', res.id);
}
});
}
code: 400,
errors:
[ { domain: 'global',
reason: 'required',
message: 'The permission type field is required.',
locationType: 'other',
location: 'permission.type' } ]
对于那些仍在寻找答案的人来说,需要将其格式化为:
{
fileId: fieldID, // String
resource": {
role: putRoleHere, //String
type: putTypeHere //String
}
Google的API正在使用Axios作为HTTP客户端,因此在使用他们的方法时,它会自动为您字符串化:)