Опубликовать sh таблицу Google с помощью скриптов Google Apps # 2 - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь опубликовать sh веб-приложение с помощью кода скрипта. Я прочитал этот пост , но я не могу заставить его работать, может быть, это немного другая ситуация. У меня есть сценарий, который копирует электронную таблицу: в сценарии я хочу опубликовать sh новую копию таблицы в виде веб-приложения и, если это возможно, получить ее опубликованный URL c (любой должен иметь возможность доступ к нему).

Вот мой код:

  // Make a copy of the spreadsheet
  var repliesFile = responseTemplate.makeCopy('risposte', newFolder);
  var repliesId = SpreadsheetApp.openById(repliesFile.getId());

  // pubblish the new copy as a web app
  Drive.Revisions.update({published: true, publishedOutsideDomain: true, publishAuto: true}, repliesId, 1);

  // of course, this doesn't work.. I need a way to get the web app public url of the new copy
  var webAppUrl = ScriptApp.getService().getUrl(); 

Я получил ошибку 404. Что я делаю неправильно? Диск Api v.2 включен в скрипт. Спасибо за любую помощь, вы можете дать мне!

1 Ответ

3 голосов
/ 23 марта 2020
  • Вы хотите опубликовать sh скопированную электронную таблицу.
  • Вы хотите получить URL опубликованной электронной таблицы.
  • Вы хотите добиться этого, изменив свой скрипт.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • В вашем сценарии я считаю, что repliesId не является правильным. Это объект электронной таблицы. Пожалуйста, используйте repliesFile.getId() в качестве идентификатора файла.
  • К сожалению, на данном этапе URL-адрес, такой как https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml, не может быть получен. Но вы можете https://docs.google.com/spreadsheet/pub?key=### spreadsheetId ### в качестве URL-адреса опубликованной электронной таблицы.

Модифицированный скрипт:

Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом.

From:
Drive.Revisions.update({published: true, publishedOutsideDomain: true, publishAuto: true}, repliesId, 1);
Кому:
var fileId = repliesFile.getId();
Drive.Revisions.update({published: true, publishedOutsideDomain: true, publishAuto: true}, fileId, 1);
var url = "https://docs.google.com/spreadsheet/pub?key=" + fileId;
  • url может использоваться как URL опубликованной таблицы.

Примечание:

  • В этом случае, пожалуйста, включить Drive API в расширенных службах Google.

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я прошу прощения .

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