【发布时间】:2017-10-26 08:55:42
【问题描述】:
我在谷歌应用程序脚本中使用服务帐户,所以我无法使用正常的谷歌应用程序脚本 api。
所以我使用 drive rest api 来创建、移动、复制等,但我可以使用 rest api 上传文件。它上传了一个文件,但它没有内容或内容错误。
这是我的代码:
var contentType = data.substring(5, data.indexOf(';')),
bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,') + 7)),
blob = Utilities.newBlob(bytes, contentType, file);
var service = getService();
if (service.hasAccess()) {
var url = 'https://www.googleapis.com/upload/drive/v3/files?uploadType=media';
var data = {
name: name,
mimeType: "application/pdf",
parents: [parent]
};
var options = {
method: 'post',
contentType: 'application/json',
body: blob ,
payload: JSON.stringify(data),
muteHttpExceptions: true,
headers: {
Authorization: 'Bearer ' + service.getAccessToken()
}
};
var response = UrlFetchApp.fetch(url, options);
var result = JSON.stringify(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
return result["id"];
} else {
Logger.log(service.getLastError());
}
谢谢
【问题讨论】:
标签: rest google-apps-script google-drive-api