Используемый код для создания пустой таблицы и получения ее идентификатора. Как только Id ресурса станет доступен, я хочу программно прикрепить к нему собственный скрипт.
[...]
var newSpreadsheet = SpreadsheetApp.create("Опис "+dateFormated);
Logger.log(newSpreadsheet.getId());
var url = 'https://script.googleapis.com/v1/projects/'+newSpreadsheet.getId();
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + token
},
muteHttpExceptions: true
});
запрос приводит к ошибке (независимо от того, какую конечную точку я вызываю для проекта). URL-адрес, указанный в сообщении об ошибке, бесполезен, поскольку это не проект, которым я управляю. Переход к нему приводит к
У вас недостаточно прав для просмотра этой страницы
Вам не хватает хотя бы одного из следующих необходимых разрешений:
Проект
resourcemanager.projects.get
serviceusage.services.get
"error": {
"code": 403,
"message": "Apps Script API has not been used in project 85798724816 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/script.googleapis.com/overview?project=85798724816 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.Help",
"links": [
{
"description": "Google developers console API activation",
"url": "https://console.developers.google.com/apis/api/script.googleapis.com/overview?project=85798724816"
}
]
}
]
}
РЕДАКТИРОВАТЬ: Ответ от puffin и TheMaster решает проблему.
Ответ от TheMaster - это то, что я хотел сделать более конкретно
С моим вопросом тоже есть проблема. Я пытаюсь получить проект для электронной таблицы еще до того, как она будет создана. Итак, первый правильный запрос - это POST на https://script.googleapis.com/v1/projects.
Шаги решения:
- переключиться с облачного проекта Google по умолчанию на стандартный облачный проект (проверьте ссылку на TheMaster)
- Создайте API-ключ в облачной консоли для проекта
var url = 'https://script.googleapis.com/v1/projects?key=[YOUR_KEY_HERE]';
var token = ScriptApp.getOAuthToken();
var data = {
"parentId": "16eL4PIVFO5Zdd7r-8HhQF_4OZS7G7TbTX-pg",
"title": "autoProject"
};
var response = UrlFetchApp.fetch(url, {
headers: {
Authorization: 'Bearer ' + token
},
method: 'POST',
contentType: "application/json",
muteHttpExceptions: true,
payload: JSON.stringify(data),
});
и вот как вы выполняете успешный запрос к Scripts API из самого Scripts