Запрос на добавление API Google Sheets v4 получает ответ HTTP 401 для общедоступных каналов с использованием ключа API.

Это очень похоже на другой вопрос, на который ответил здесь о том, как получить данные электронной таблицы, но я пытаюсь добавить данные в электронную таблицу. Вот мой пример запроса на завивку:

curl -H "Content-Type: application/json" -X POST -d '{"range":"A1","majorDimension":"ROWS","values":["Frank2"]}' https://sheets.googleapis.com/v4/spreadsheets/{SPREADSHEET_ID}/values/A1:append?valueInputOption=RAW&key={API-KEY}

Вот ответ:

{
  "error": {
    "code": 401,
    "message": "The request does not have valid authentication credentials.",
    "status": "UNAUTHENTICATED"
  }
}

Это можно сделать только с помощью ключа API или я что-то не так делаю? Документация предполагает, что это возможно, если электронная таблица является общедоступной.


person blinkmacalahan    schedule 02.12.2016    source источник


Ответы (3)


Запросы на запись в электронную таблицу требуют учетных данных для проверки подлинности. Даже если электронная таблица является общедоступной, при записи через API запись должна быть связана с пользователем.

person Sam Berlin    schedule 02.12.2016
comment
где это указано? Я не могу найти это нигде в документации: developers.google.com/sheets/api /направляющие/авторизация - person Bennett Talpers; 13.12.2017
comment
У меня такая же проблема, в документации говорится, что вы можете использовать APIKey. - person sww314; 28.02.2018
comment
да ?key=API_KEY работает только для GET, но не для POST - person Wasim A.; 28.01.2019

В настоящее время это сломано. Вы не можете редактировать документ (даже общедоступный) только с помощью APIKey.

https://issuetracker.google.com/issues/73974970

person sww314    schedule 28.02.2018
comment
FWIW, согласно приведенному выше ответу, запросы на запись намеренно требуют авторизации пользователя и не работают только с apikey. Если в документации указано иное, не могли бы вы указать мне на эти документы? - person Sam Berlin; 28.02.2018

https://developers.google.com/sheets/api/guides/authorizing#APIKey

На странице выше указано следующее:

Ваше приложение должно использовать OAuth 2.0 для авторизации запросов. Никакие другие протоколы авторизации не поддерживаются. Если ваше приложение использует Google Sign-In, некоторые аспекты авторизации выполняются за вас.

person laughingcannon    schedule 30.07.2019