Именно в этом проблема, спасибо за ссылку. Я искал, прежде чем опубликовать свой вопрос, но, очевидно, я пропустил тот.
олее года я использую Google Sheets APIv4 на веб-странице для представления данных из общедоступной электронной таблицы Google.
Хотя с нашей стороны ничего не изменилось, API листов теперь возвращает ошибку 403 «Отказано в доступе». Лист, к которому я пытаюсь получить доступ, принадлежит мне, и настройки общего доступа действительно правильные.
Об этой проблеме сообщили мне 17.07.18.
Я использую Javascript для доступа к общедоступному листу, и поскольку аутентификация не требуется, указывается только ключ API.
Если я пытаюсь открыть общедоступный лист, используя его общедоступный URL-адрес в окне браузера «Гость», лист виден, и проверка подлинности НЕТ.
Почему API вдруг отказывается читать общедоступный лист?
Вот код, который я использую для получения общедоступного листа.
gapi.client.init({
'apiKey': 'AIzaSyC5fTcQun-1r83DVWlPmGAZpoUGPNcuM34',
'discoveryDocs': ['https://sheets.googleapis.com/$discovery/rest?version=v4']
}).then(function() {
return gapi.client.sheets.spreadsheets.values.get({
'spreadsheetId': '1e3KBd0277mz79IgxNch1-lwWdlJGiJQSe2eMNcXWYes',
'range': 'Sheet1!A:E'
});
}, errorMessage).then(function(response) { // Code to process the response });
В верхней части html-файла, который ссылается на скрипт, который читает общедоступную электронную таблицу, загружается gapi путем вставки тега script, src tag = "https://apis.google.com/js/api.js"
Затем я использую gapi.load ('client', getData), чтобы перехватить событие загрузки клиентской библиотеки, где getdata - это имя функции, содержащей приведенный выше фрагмент кода.
Здесьпрямой URL на публичный лист:
НОТА: Ключ API в приведенном выше коде ограничен только нашим доменом.
Если я немного изменю код и сделаю так, чтобы требовалась авторизация, добавив OAuth clientId и Scope к вызову gapi.client.init (), API листов успешно извлекает электронную таблицу, но это лишает объект создания лист публичный.