如何将'field'属性添加到JavaScript中的Google Drive API v3调用中?
tl; dr我是JavaScript和Google Apps脚本的新手,我不知道如何将'fields'属性添加到Google Drive v3 API调用中。 (halp plz?)如何将'field'属性添加到JavaScript中的Google Drive API v3调用中?
作为较大项目的一部分,我尝试使用Google Apps脚本(服务帐户)和the OAuth 2 sample from Google修改G Suite域中的文件权限。我已经为Drive API v3编写了此功能,以便从Drive API v2中替换getIdForEmail。但是,API v3需要'fields'查询参数来请求特定的字段。
当我运行该脚本给出的错误是
信息详情 要求失败,返回https://www.googleapis.com/drive/v3/about 400码截断服务器响应:{“错误”:{“错误”:[{“域”: “global”,“reason”:“required”,“message”:“这个方法需要'fields'参数...(使用muteHttpExceptions选项来检查完整响应)(行xxxx,文件”xxxx“)
我用其他编程语言找到答案,但无法将其转换为Google Apps Script/JavaScript。请参阅字段上一个回答:Google Drive API v3 Migration。您能否告诉我在API调用中添加'fields'属性以请求'permissionId'的正确方法?
function getPermissionIdForEmail(userEmail) {
var service = getService(userEmail);
if (service.hasAccess()) {
var url = 'https://www.googleapis.com/drive/v3/about';
var options = {
'method': 'get',
'contentType': 'application/json'
};
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
}
});
var result = JSON.parse(response.getContentText());
Logger.log('getPermissionIdForEmail result: %s', JSON.stringify(result, null, 2));
} else {
Logger.log('getPermissionIdForEmail getLastError: %s', service.getLastError());
}
}
我不记得的副手,如果谷歌将在这里接受POST请求,如果他们将这种可以作为请求负载传递:
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
},
payload: {
fields: 'kind,user,storageQuota'
}
});
或者如果它必须是一个GET请求你可以直接追加URL参数:
url = url+'?fields=kind,user,storageQuota'
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
}
});
谢谢!在这种情况下,解决方案是通过GET请求使用url = url +'?fields = user/permissionId'。 – C02
其他链接我coudn't后,由于低声望得分:https://developers.google.com/drive/v2/reference/permissions/getIdForEmail,HTTPS: //developers.google.com/drive/v3/web/migration, https://developers.google.com/drive/v3/reference/about/get – C02