API скриптов приложений не вставляет данные в Google Sheets - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь выполнить функцию, вызывая ее из моего расширения Chrome. Я вижу в «Моих исполнениях», что расширение chrome вызвало функцию, но оно не вставляет данные в Google Sheets.

  • Когда я пытаюсь запустить эту функцию из редактора сценариев напрямую, она работает.

Вызов функции из расширения Chrome

post({ 'url': 'https://script.googleapis.com/v1/scripts/' + SCRIPT_ID + ':run',
  'callback': executionAPIResponse,
  'token': token,
  'request': {
    'function': 'setData',
    'parameters': { 'data': JSON.parse(exec_data.value) },
  }
});

Код редактора скриптов

function setData(parameters) {  
  try {
    var doc = SpreadsheetApp.openById(DOC_ID);
    var sheet = doc.getSheets()[0];
    var data = parameters.data;
    sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
    return {"status":"ok", 'doc':doc.getUrl()};
  } catch(e){
    // if error return this
    Logger.log(e);
    return {"status": JSON.stringify(e)};
  }
}

Я развернул проект «Сценарий приложений» как «Исполняемый файл API». Мне интересно, есть ли что-то не так с тем, как я развернул приложение в Script Editor?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Я нашел ошибку, которую делал. На самом деле код был верным, но при развертывании как исполняемый файл API вы всегда должны менять версию на новую, когда вносите изменения в код

0 голосов
/ 31 марта 2019

getActiveSpreadsheet() работает только в проектах сценариев, привязанных к электронной таблице, и только для доступа к таблице, содержащей проект сценария.

Вместо использования вышеуказанного метода используйте openByUrl(url) или openById(id)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...