设置权限 'sendNotificationEmails': 'false' 以避免 "message" 的正确语法是什么:“超出速率限制。用户消息:
What Is it the correct syntax to set permission 'sendNotificationEmails': 'false' to avoid "message" : "Rate limit exceeded. User message:
function createPermissionOffic(auth){
const drive = google.drive({version: 'v3', auth});
var fileId = rootFolderId;
var permissions = [
{
'type': 'user',
'role': 'writer',
'emailAddress': 'someemailaddress@gmail.com'
}
];
// Using the NPM module 'async'
async.eachSeries(permissions, (permission, permissionCallback)=> {
drive.permissions.create({
resource: permission,
fileId: fileId,
fields: 'id',
}, (err, res)=> {
if (err) {
// Handle error...
console.error(err);
permissionCallback(err);
} else {
console.log('Permission ID: '+ res)
permissionCallback();
}
});
}, (err)=> {
if (err) {
// Handle error
console.error(err);
} else {
// All permissions inserted
drive.permissions.insert(
{
'sendNotificationEmails': 'false'
});
}
});
我收到以下错误:google 驱动器 API 文档没有详细说明 much.here 是我收到的错误。
类型错误:drive.permissions.insert 不是 async.eachSeries
处的函数
我相信你的目标如下。
- 您想使用
sendNotificationEmail: false
权限:创建方法。
- 您想使用带有 Node.js 的 googleapis 来实现此目的。
- 您已经能够使用 Drive API v3.
创建权限
修改点:
drive.permissions.insert
适用于驱动器 API v2。在这种情况下,当您 运行 脚本时,会发生错误。为了使用sendNotificationEmail: false
,请使用到drive.permissions.create
.
- 关于
Rate limit exceeded
,当permissions
的数组长度较大时,可能会出现这样的错误。因此,首先,作为测试,如何使用简单的情况检查请求是否有效。在您问题的示例脚本中,使用了 1
的数组长度。我认为使用它检查请求怎么样?
- 在您的情况下,可以通过
res.data.id
检索权限 ID。
- 在您的脚本中,
rootFolderId
用于 var fileId = rootFolderId;
。当rootFolderId
为根文件夹ID 时,会出现类似This file is never writable.
的错误。所以请注意这一点。
当以上几点反映到你的脚本中,就会变成下面这样。
修改后的脚本:
const drive = google.drive({version: "v3", auth});
var fileId = "###"; // Please set the file ID or folder ID.
var permissions = [
{
type: "user",
role: "writer",
emailAddress: 'someemailaddress@gmail.com',
},
];
// Using the NPM module 'async'
async.eachSeries(
permissions,
(permission, permissionCallback) => {
drive.permissions.create(
{
resource: permission,
fileId: fileId,
fields: "id",
sendNotificationEmail: false, // <--- Added
},
(err, res) => {
if (err) {
// Handle error...
console.error(err);
permissionCallback(err);
} else {
console.log("Permission ID: " + res.data.id); // <--- Modified
permissionCallback();
}
}
);
},
(err) => {
if (err) {
// Handle error
console.error(err);
} else {
console.log("Done"); // <--- Modified
}
}
);
参考:
function createPermissionOffic(auth){
const drive = google.drive({version: 'v3', auth});
var fileId = rootFolderId;
var permissions = [
{
'type': 'user',
'role': 'writer',
'emailAddress': 'someemailaddress@gmail.com'
}
];
// Using the NPM module 'async'
async.eachSeries(permissions, (permission, permissionCallback)=> {
drive.permissions.create({
resource: permission,
fileId: fileId,
fields: 'id',
}, (err, res)=> {
if (err) {
// Handle error...
console.error(err);
permissionCallback(err);
} else {
console.log('Permission ID: '+ res)
permissionCallback();
}
});
}, (err)=> {
if (err) {
// Handle error
console.error(err);
} else {
// All permissions inserted
drive.permissions.insert(
{
'sendNotificationEmails': 'false'
});
}
});
我收到以下错误:google 驱动器 API 文档没有详细说明 much.here 是我收到的错误。 类型错误:drive.permissions.insert 不是 async.eachSeries
处的函数我相信你的目标如下。
- 您想使用
sendNotificationEmail: false
权限:创建方法。 - 您想使用带有 Node.js 的 googleapis 来实现此目的。
- 您已经能够使用 Drive API v3. 创建权限
修改点:
drive.permissions.insert
适用于驱动器 API v2。在这种情况下,当您 运行 脚本时,会发生错误。为了使用sendNotificationEmail: false
,请使用到drive.permissions.create
.- 关于
Rate limit exceeded
,当permissions
的数组长度较大时,可能会出现这样的错误。因此,首先,作为测试,如何使用简单的情况检查请求是否有效。在您问题的示例脚本中,使用了1
的数组长度。我认为使用它检查请求怎么样? - 在您的情况下,可以通过
res.data.id
检索权限 ID。 - 在您的脚本中,
rootFolderId
用于var fileId = rootFolderId;
。当rootFolderId
为根文件夹ID 时,会出现类似This file is never writable.
的错误。所以请注意这一点。
当以上几点反映到你的脚本中,就会变成下面这样。
修改后的脚本:
const drive = google.drive({version: "v3", auth});
var fileId = "###"; // Please set the file ID or folder ID.
var permissions = [
{
type: "user",
role: "writer",
emailAddress: 'someemailaddress@gmail.com',
},
];
// Using the NPM module 'async'
async.eachSeries(
permissions,
(permission, permissionCallback) => {
drive.permissions.create(
{
resource: permission,
fileId: fileId,
fields: "id",
sendNotificationEmail: false, // <--- Added
},
(err, res) => {
if (err) {
// Handle error...
console.error(err);
permissionCallback(err);
} else {
console.log("Permission ID: " + res.data.id); // <--- Modified
permissionCallback();
}
}
);
},
(err) => {
if (err) {
// Handle error
console.error(err);
} else {
console.log("Done"); // <--- Modified
}
}
);