Получение изображений в ячейках с помощью Google Sheets API

Я использую API Google Sheets для возврата JSON таблицы Google,

e.g

 var url = 'https://spreadsheets.google.com/feeds/list/' + id + '/od6/public/values?alt=json';

В одну из ячеек я добавил изображение, но оно кажется пустым в json.
Как мне получить это изображение?


person Adam    schedule 14.09.2016    source источник


Ответы (1)


Это возможно, если вы используете Sheets API v4. Если вы сделаете spreadsheets.get запрос, вы получите доступ к формуле =IMAGE(...), используемой в ячейке.

GET https://sheets.googleapis.com/v4/spreadsheets/{SPREADSHEET_ID}?
    includeGridData=true&ranges={RANGE_A1}&
    fields=sheets%2Fdata%2FrowData%2Fvalues%2FuserEnteredValue

200 OK

{
  "sheets": [
    {
      "data": [
        {
          "rowData": [
            {
              "values": [
                {
                  "userEnteredValue": {
                    "formulaValue": "=image(\"https://www.google.com/images/srpr/logo3w.png\")"
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
person Eric Koleda    schedule 14.09.2016
comment
Примеры, которые я видел, требуют от пользователя аутентификации, есть ли способ сделать это с помощью приложения, чтобы пользователю не приходилось входить в систему? - person Adam; 22.09.2016
comment
Авторизация не требуется, если таблица доступна всем, у кого есть ссылка. - person Eric Koleda; 23.09.2016
comment
{ошибка: {код: 403, сообщение: в запросе отсутствует действующий ключ API., статус: PERMISSION_DENIED}} Я получаю эту ошибку. Доступ к листу открыт для всех, у кого есть ссылка. Я пробовал использовать nbsp; .com / v4 / spreadsheets /. - person Code Guy; 06.03.2020
comment
Это больше не работает. Возвращает пустую строку - person Marvin; 28.02.2021
comment
Любой другой API доступен для получения изображения из электронной таблицы Google ??? - person Nikunj Chaklasiya; 23.06.2021
comment
Да @NikunjChaklasiya можно с valueRenderOption: 'FORMULA'. Например: sheets.spreadsheets.values.get({ spreadsheetId: MY_SPREADSHEET_ID, range: MY_SHEET_NAME, valueRenderOption: 'FORMULA', }); Тогда вы увидите текст формулы в ответе, включая =image() - person Jo Sprague; 22.07.2021