Доступ к API электронных таблиц Google без маркера Oauth

Я прочитал документацию по электронным таблицам Google https://developers.google.com/sheets/api/guides/authorizing Там написано, что если документ общедоступный, вам не нужен Oauth 2.0 и достаточно ключа API. Я пытаюсь сделать тестовый запрос с ключами HURL и API в качестве parameter.it, но все равно выдает ошибку, что мне нужно использовать Oauth, есть мысли?

POST https://sheets.googleapis.com/v4/spreadsheets/16woR-nfy6KYBbkQpC2YOT1GzIean8rTzjueUnlzLMiE/values/Sheet1!A1:E1:append?valueInputOption=USER_ENTERED

Отклик:"error": {"code": 401,"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.","status": "UNAUTHENTICATED"}

1 ответ

Решение

API ключа недостаточно. Вы пытаетесь использовать spreadsheets.values.append, для которого требуется авторизация OAuth:

Авторизация Требуется одна из следующих областей OAuth:

https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/spreadsheets
For more information, see the [Auth Guide](https://developers.google.com/identity/protocols/OAuth2).

Обратите внимание, что это говорит OAuth.

Вы можете использовать следующий формат:

https://docs.google.com/spreadsheets/d/{sheetID} / export?format=csv

Сделайте URLConnection к этому URL-адресу после замены идентификатора листа вашим общедоступным листом и прочтите файл csv, как вы обычно делаете это на выбранном вами языке программирования.

Обратите внимание, что это верно только для общедоступных электронных таблиц Google для чтения и является своего рода взломом, когда вам не обязательно выполнять jig и jive с учетными данными.

В моем случае мне нужно публиковать контент из электронной таблицы Google на веб-странице. Мой обходной путь состоит в использовании вызова HTTP GET

ПОЛУЧИТЬ https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId} / values ​​/{range}

с использованием объекта javascript XMLHttpRequest В этом решении вам нужно использовать только ключ API