我是JavaScript和Google脚本的新手,我不知道如何将“字段”属性添加到Google v3 API调用中。
我试图使用Google脚本、服务帐户和谷歌的OAuth 2示例修改G套件域中的文件权限。我为Drive v3编写了一个函数来代替Drive v2 getIdForEmail
,但是API v3需要‘field’查询参数来请求特定的字段。
运行脚本时给出的错误是:
https://www.googleapis.com/drive/v3/about返回代码400的请求失败。截断服务器响应:{“错误”:{“错误”:[{“域”:“全局”,“原因”:“必需”,“消息”:“字段”参数是此方法所必需的.
我在另一种编程语言中找到了答案,但无法将其翻译到Google脚本/ JavaScript。关于前面的答案:,请参见Google v3迁移。如何将“字段”属性添加到请求“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());
}
}
编辑:谢谢卡梅隆·罗伯茨的帮助。我用的解决方案是
var url = 'https://www.googleapis.com/drive/v3/about' + '?fields=user/permissionId';
发布于 2017-08-29 07:11:47
我不记得Google是否会接受这里的帖子请求,如果他们愿意的话,这可以作为请求有效负载来传递:
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()
}
});
https://stackoverflow.com/questions/45942386
复制相似问题