веб-приложение Google Script получает параметр из URL

#javascript #google-apps-script #web-applications

#javascript #google-apps-script #веб-приложения

Вопрос:

У меня есть веб-приложение Google Script со ссылкой, например

https://script.google.com/a/macros/domain.com/s /******/dev?v=repDetails

На стороне пользователей — в HTML-коде — могу ли я получить значение «v»? Я пытался искать похожие проблемы и разработал это

  var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = ScriptApp.getService().getUrl()
        sURLVariables = sPageURL.split('amp;'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i  ) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
};

var id = getUrlParameter('v');
alert(id)
  

но он возвращает ошибку «ScriptApp не определен»

Есть ли здесь решение?

Спасибо

Ответ №1:

Чтобы запустить пользовательский скрипт приложения на стороне клиента, вы должны использовать:

 google.script.run.withSuccessHandler(
      (result) => {
    //do something with the result
    }).withFailureHandler(
      (error) => {
    //do something with the error
      }
    ).nameOfYourFunction(params)
  

в вашем случае:

 google.script.run.withSuccessHandler(
      (params) => {
    //do something with the result
    }).withFailureHandler(
      (error) => {
    //do something with the error
      }
    ).getUrlParameter(sParam)
  

Ответ №2:

Библиотеки на стороне сервера, подобные ScriptApp , недоступны на стороне клиента.

Чтобы получить параметры запроса URL и хэш на стороне клиента, используйте google.script.url.getLocation :

 google.script.url.getLocation(location=>console.log(location.parameter))