我改编了Google Drive API快速入门中的代码,用于Node.js找到here,尝试在Google Drive中的现有文件上创建新权限。
不管我在代码中做了什么修改,我总是得到相同的响应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: 'user@example.com'
};
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);
}
});
}
来自Google云端硬盘API的响应
code: 400,
errors:
[ { domain: 'global',
reason: 'required',
message: 'The permission type field is required.',
locationType: 'other',
location: 'permission.type' } ]
2条答案
按热度按时间atmip9wb1#
对于任何还在寻找答案的人来说,它需要像这样的格式:
Google的API正在使用Axios作为HTTP客户端,因此当您使用他们的方法时,它将自动字符串化:)
ddhy6vgd2#
看起来docs生成的这个API的示例代码是无效的。通过分析devtools网络中传出的请求和一些猜测,我发现
resource
字段必须与fileId
一起放置在根级别。考虑到文档不鼓励使用特定版本的the library,我想只是在某个时候有一个随机的破坏性变化,导致文档中的不一致。