Обновить выпадающий список Google Forms с C# - PullRequest
0 голосов
/ 17 февраля 2020

Я использую код для чтения информации из Google Sheets (результаты из Google Forms) с C#, но теперь я хочу обновить раскрывающийся список для указанных c Google форм с C#. Я видел код, где вы можете обновить выпадающий список с помощью скрипта приложения Google (https://developers.google.com/apps-script/reference/forms), но я не могу найти код для этого в C#. В течение C# можно обновить страницу Google, поэтому вы должны подумать, что можно сделать то же самое с Google Forms. Кто-нибудь делал это? Пример, который я нашел, очень прост в скрипте приложения

var existingForm = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var item = form.getitembyid(3567489);
var values = ["oranges", "Tomatoes"]
item.asListItem().setChoicesValues(values);

1 Ответ

1 голос
/ 18 февраля 2020

API форм не существует, поэтому вы не можете сделать это напрямую с помощью C#. Из-за этого, единственный вариант, если вы хотите сделать это программно, это использовать Apps Script .

Однако есть обходные пути, чтобы «обернуть» скрипт скрипта приложения и вызвать его удаленно из вашей C# программы:

Обходное решение № 1 (веб-приложение скрипта приложения):

Вы можете опубликовать sh свой сценарий в качестве веб-приложения и использовать его в качестве конечной точки URL-адреса, к которой вы получите доступ с помощью приложения C#. Веб-приложение будет получать HTTP-запросы от вашего приложения и редактировать форму. Например, вы можете выполнить запрос POST с данными об элементах, которые вы хотите редактировать, и использовать соответствующий объект события , чтобы получить эту информацию. Это может быть что-то вроде следующего:

function doPost(e) {
  var formId = e.parameter.id; // Your form id
  var itemId = e.parameter.itemId; // Your item id
  var form = FormApp.openById(formId);
  var item = form.getItemById(itemId);
  var values = e.parameters.values; // ["oranges", "Tomatoes"]
  item.asListItem().setChoicesValues(values);
}

Обходной путь # 2 (API скриптов приложений):

Другой способ, если вы хотите редактировать форму удаленно из приложения C#, использовать API скриптов приложений для создания и запуска проекта скриптов приложений, который содержит код для редактирования формы. Осторожно, это не простой способ, и он будет состоять из нескольких шагов:

  1. Получить доступ к форме через OAuth 2.0 .
  2. Использование В этой библиотеке создайте проект с помощью API скриптов приложений, используя метод projects.create . Я бы посоветовал вам создать проект, связанный с формой, чтобы вам не нужно было авторизовать скрипт, когда пришло время его выполнить. Если вы сделаете это, вам нужно будет указать parentId в вашем теле запроса (и вместо этого вы можете использовать FormApp.getActiveForm(), что не требует авторизации).
  3. Использование scriptId полученный из ответа на предыдущем шаге, вызовите projects.updateContent , в который вам нужно будет добавить код, соответствующий файлам в вашем проекте.
  4. Call scripts.run для выполнения вашего кода обновите вашу форму. Если вы создали автономный скрипт на шаге 2, вам нужно будет авторизовать свой проект с помощью OAuth 2.0.

Ссылка:

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