Триггер времени в аддоне Google Scheet и Survey Monkey API - PullRequest
0 голосов
/ 16 января 2020

Я работаю над университетским проектом и использую SurveyMonkey для сбора данных для использования моей командой.

Чтобы легко читать и обрабатывать данные, я использую надстройку API Connector в Google Scheet для загружайте последние ответы от Survey Monkey, особенно когда из-за моей политики Uni я единственный, кто может иметь доступ к Survey Monkey в моей команде.

Проблема в том, что нам нужно обновить данные sh каждые 5 минут, так как в зависимости от характеристик проекта мы должны отслеживать количество быстро отправляемых ответов в течение 4-часового окна каждый день и каждые 5 минут.

API-коннектор позволяет мне повторно запускать запрос данных автоматически, но только за каждый 1 час, что недостаточно для меня и моей команды. Я пытался использовать Google Apps Script из того поста , но, к сожалению, я не могу изменить его, чтобы заставить его работать из-за недостатка знаний.

 function onInstall() {
  onOpen(); 
}
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Schedule')
  .addItem('Start Schedule', 'menuItem3')
  .addToUi();
}

function menuItem3() {
  createTrigger();
}

function createTrigger()
{
    ScriptApp.newTrigger('startProcess')
    .timeBased()
    .everyDays(1)
    .create(); 
}


function startProcess(){
// Add your processing logic here. e.g. send notifications.
}

Не могли бы вы помочь я и моя команда? Мы на самом деле не программисты (студенты-экономисты), и я действительно борюсь с этим: (

1 Ответ

0 голосов
/ 16 января 2020

Как я понимаю, вы

  1. собираете информацию с помощью surveymonkey
  2. импорта данных из surveymonkey в листы Google
  3. вы хотите обновить sh данные из surveymonkey в листах Google каждые 5 минут

Что ж, вам следует используйте для этого triggers.


  1. Прежде всего, взгляните на это руководство по опросу , если вы не делали этого раньше
  2. во-вторых, давайте создадим / изменим script со следующим кодом

Вот пример кода для целей проверки триггера

function myFunction(){
  // change id by your actual spreadsheet ID
  var ss = SpreadsheetApp.openById("id").getSheetByName("Sheet1");
  var originalRange = ss.getRange("A1");
  var destinationRange = ss.getRange("A2");
  originalRange.copyTo(destinationRange);
}

Что это так?

  • копирует ячейку A1 в A2, если вы запустите ее из скрипта Apps, вы увидите работу в действии.

Но как запускать ее каждую минуту или каждые 5 минут?

Следуйте следующему пошаговому руководству:

  1. В скрипте приложений выберите Меню> Правка> Триггеры текущего проекта
  2. Ne Откроется вкладка w с триггерами, синяя кнопка часов Добавить триггер
  3. В блоке конфигурации выберите следующие параметры:
    • Выберите, какую функцию запустить: myFunction
    • Выбор источника события: Временной привод
    • Выбор типа триггера на основе времени: Таймер минут
    • Выбор минутного интервала: Каждую минуту

так выглядит enter image description here

нажмите кнопку Сохранить

С этого момента ваша ячейка A1 будет копироваться в A2 каждую минуту автоматически,


Зная этот прием, вы можете использовать API Connect в myFunction. чтобы импортировать данные в Google Sheet

Надеюсь, это поможет вам, и, кстати, у Google есть замечательный сервис, такой как Google Forms , вы также можете протестировать его:)


Ссылки:

...