Невозможно записать значения с помощью Logger в скрипте приложения Google - PullRequest
0 голосов
/ 10 июня 2018

Вот мой HTML-код, откуда я вызываю функцию loadClient при нажатии кнопки загрузки,

//LOAD CLIENT BUTTON`
document.getElementById("load_button").addEventListener('click',function(){
google.script.run.loadClient();
});

вот соответствующая функция в файле code.gs

//function02-loadClient
function loadClient() {
    eval(UrlFetchApp.fetch('https://apis.google.com/js/api.js').getContentText());
    return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/webmasters/v3/rest")
       .then(function() { Logger.log("GAPI client loaded for API"); },
              function() { Logger.log("Error loading GAPI client for API" ); });
}

1 Ответ

0 голосов
/ 10 июня 2018

Когда вы вызываете google.script.run в клиентской среде, вы запрашиваете выполнение функции скрипта Apps на стороне сервера.

Ваша реализация loadClient() не имеет смысла в контекстеВыполнение скрипта приложения на стороне сервера.

Вот полный и простой пример успешного запуска вызова Logger.log() на стороне сервера с помощью нажатия кнопки на стороне клиента:

client.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <script>
    function registerListener() {
      document.getElementById('callServerFunction').addEventListener('click', function() {
        google.script.run
            .withSuccessHandler(function() {
              alert("Successfully called server function.");
            })
            .withFailureHandler(function() {
              alert("Failed to call server function.");
            })
            .serverFunction();
      });
    }
  </script>
  <body onload="registerListener()">
    <button id="callServerFunction">Call Server Side Function</button>
  </body>
</html>

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('client');
}

function serverFunction() {
  Logger.log("Server function called.");
}

Результаты ведения журнала на стороне сервера после нажатия кнопки

[18-06-10 13:48:20:359 PDT] Server function called.

Относительно JavaScript API GoogleКлиентские библиотеки (т. Е. https://apis.google.com/js/api.js),, которые не предназначены для использования в контексте серверной части Apps Script. Весь смысл Apps Script заключается в том, что существует подробный список служб, готовых к немедленному использованию без какой-либо настройки .Помимо несовместимости, попытка загрузить JS-библиотеки на стороне клиента в контексте скрипта Apps на стороне сервера просто избыточна.

Аналогично, попытка использовать JS-версию на стороне клиентаРазмышления в клиентском коде Apps Script также не имеют особого смысла, так как у вас есть полный набор серверных функций, доступных через google.script.run.

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