Я создаю продукт Google App Script, который загружает электронную таблицу, преобразованную в csv, в Google Cloud Storage. Когда я делаю запрос, я получаю 403 ответ с описанием:
accessNotConfigured: Project [12 digit number] is not found and cannot be used for API calls. If it is recently created...
.
Здесь идентификатор проекта неправильный (также я действительно не нашел проект с таким идентификатором). Но когда я выполняю запросы GET (списки блоков, списки объектов в корзине, объект загрузки), все работает как положено.
Вот мой код:
function myFunction() {
var spreadsheet = SpreadsheetApp.getActive();
var csv = convertRangeToCsv(spreadsheet)
var blob = Utilities.newBlob(csv, "text/csv;charset=utf-8;", "Test_file.csv");
var bytes = blob.getBytes();
var token = ScriptApp.getOAuthToken()
var url = 'https://storage.googleapis.com/upload/storage/v1/b/bucket1/o?uploadType=media&name=Test_file.csv'
//List buckets
/*var response = UrlFetchApp.fetch("https://storage.googleapis.com/storage/v1/b?project=my-project", {
method: "GET",
headers: {
'Authorization': 'Bearer ' + token
}
});*/
//Download file
/*var response = UrlFetchApp.fetch("https://storage.googleapis.com/storage/v1/b/bucket1/o/test.sh?alt=media", {
method: "GET",
headers: {
'Authorization': 'Bearer ' + token
}
});*/
//Upload file
var response = UrlFetchApp.fetch(url, {
method: "POST",
contentLength: bytes.length,
contentType: "text/plain",
muteHttpExceptions: true,
payload: bytes,
headers: {
'Authorization': 'Bearer ' + token
}
});
//List Files
/*var response = UrlFetchApp.fetch("https://storage.googleapis.com/storage/v1/b/bucket1/o", {
method: "GET",
headers: {
'Authorization': 'Bearer ' + token
}
});
var fileContent = response.getBlob().getDataAsString();
*/
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
}
Я уже пробовал добавить заголовок X-Goog-User-Project
с правильным идентификатором проекта, но это не поможет.
Любой совет приветствуется!