Почему может не работать google script run

google.script.run больше не вызывается из Webapps, встроенных в сайты

Я работал с моими приложениями, встроенными на наш сайт, на некоторое время без каких-либо неудобств, когда они внезапно перестали работать.

Из того, что я смог устранить, вызовы, которые я выполняю для своих скриптов с помощью google.script.run из кода JavaScript в HTML, больше не проходят. Всякий раз, когда он пытается выполнить код, я получаю следующее оповещения с помощью FailureHandler (предупреждение):

NetworkError: Ошибка соединения из-за HTTP 405

Это происходит во всех наших приложениях на нашем Сайте.

Там, где это действительно становится подозрительным, скрипты прекрасно работают, если они не встроены в сайт, а также при первом сохранении страницы со встроенным приложением (после обновления страницы она перестает работать снова).

Здесь вы можете проверить несколько примеров двух приложений:

С авторизацией пользователя

Без авторизации пользователя

Что случилось? Мы на самом деле ежедневно работаем с этим и должны получить стабильную версию. Я бы очень признателен за любую помощь!

РЕДАКТИРОВАТЬ:

Он автоматически добавляет

до конца URL-адреса, и этот маленький сжиматель вызывает ошибку, чтобы выскочить.

Кто-нибудь знает причину? Или почему эта часть строки добавляется в конец? Мы добавили универсальный вход, так как Приложения не могут быть замечены, если вы еще не вошли в свою учетную запись google

Источник

google.script.run.myFunction() не вызывает сервер myFunction() из клиентского HTML-скрипта

Согласно документации, вызов функции Google Apps Script из клиентского HTML-скрипта должен быть таким же простым, как google.script.run.myFunction() . Однако для меня это не работает:

Мой код

Обратите внимание, что вызов doSomething() из среды IDE выполняется плавно. Однако не из HTML-скрипта:

Мой HTML

Похоже, что речь google.script.run о сроках – google.script.run может быть вызван до того, как соединение клиент-сервер будет готово * . Обычным намерением отображения пользовательского интерфейса является взаимодействие с пользователем – и поскольку люди намного медленнее, чем машины, вы не столкнетесь с этой проблемой.

Даже короткой задержки для отображения toast достаточно, чтобы заставить его работать.

Бесплатный бонус! Размышляя над следующей проблемой, вы столкнетесь с ней, обратите внимание на оператор return . Функция сервера должна иметь какой-то return чтобы вызвать обратный вызов обработчика google.script.run.onSuccess() .

* Редактировать. Что-то не совсем верно с этим объяснением, поскольку вызов toast находится на сервере. Было бы неплохо, если бы Гуглер высказался, чтобы предложить лучшее объяснение.

Я использую его нормально, и он работает нормально.

Но я никогда не пробовал это до загрузки страницы. Поскольку у Google есть множество барьеров безопасности, таких как замена body html собственным пользовательским телом, я думаю, что стоит употребить его в обработчике загрузки страницы.

Попробуйте помещать предупреждения в обработчики (см. Ниже), чтобы узнать, действительно ли он запущен. Любая небольшая ошибка в других частях html-кода часто заставляет весь скрипт просто не запускаться.

Что нужно знать: если у вас есть global variables в сценарии на стороне сервера, они не будут сохраняться . Они будут сбрасываться каждый раз, когда вы используете google.script.run . Итак, убедитесь, что doSomething() имеет все, что нужно для этого.

И если вы ожидаете увидеть результат после doSomething() , подумайте о добавлении обработчиков в google.script.run . Сценарий на стороне сервера не сможет изменять пользовательский интерфейс и не открывать новый, если он модальный. (Никогда не пробовал без мода…)

Если ни одно из сообщений не появляется, проблема не здесь, а в другом месте. Еще кое-что мешает вашему сценарию даже начинать.

Источник

How to use google.script.run?

I am trying to use the google.run.script function in one of my projects and it doesn’t seem to be triggering the function to run.

So I made a new project and tested a simple example, copied exactly from https://developers.google.com/apps-script/guides/html/reference/run.

Code.gs

Index.html

However when I run the doGet() function then check my logs I do not see the ‘I was called’, and I cannot figure out how to correctly use google.run.script so I can use it in another project.

2 Answers 2

I think that your script works fine. doSomething() is run by google.script.run.doSomething() , and you can see I was called! at the log. So please confirm the following flow.

  1. About deploying Web Apps. Even if doGet() is directly run on script editor, it doesn’t work. At that time, please deploy as Web Apps. You can see the detail of how to deploy Web Apps is here.
  2. After the script is modified, project version has to be updated. By this, the latest script can be used by Web Apps. If you don’t want to update the project version, you can use the latest script by clicking latest code of Test web app for your latest code. . This can be seen below.
    • On script editor
    • Publish -> Deploy as web app
    • You can see «Test web app for your latest code.» at «Current web app URL:»

If this was not useful for you, I’m sorry.

I just copied your code and it is working for me. It seems that you have other code in your project which might have some errors.

Otherwise, you might be using URL of old version of your deployed project.

Not the answer you’re looking for? Browse other questions tagged google-apps-script or ask your own question.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.18.40487

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Почему может не работать new Date() в Google Script?

Делаю пустой скрипт с одной строкой:
var CurDate = new Date();
При попытке запуска пишет: «это не функция, это объект». И посылает далеко и надолго.
Что делать?

Added:

  • Вопрос задан более трёх лет назад
  • 600 просмотров

Klohtun: создал чистый проект, пишу:

Запускаю — все работает. Date.now, кстати, тоже есть. Так что смотрите в дебаггере, чему у вас равен Date, на что он ссылается и кто его мог переопределить.

Решение кроется в сообщении об ошибке.

Автор нам приводит 4 строки кода, а в ошибке указатель ссылается на 14 строку.

По все видимости, достаточно было обновить страницу браузера с проектом или сбросить кеш браузера, для отображения фактического кода.

Источник

Почему не запускается cron скрипт?

Помогите неопытному. Операционная система CentOS 6.3. Пытаюсь настроить бэкап папки и базы данных через rsync. Скрипты через консоль запускаются нормально, все работает, крон ошибок при сохранении не выдает, просто пишет «installing new crontab». Если я все правильно понимаю, то вроде все правильно. Но почему-то ничего не работает. Права на папку где лежат скрипты 777.

Я уже по всякому попробовал и /bin/bash в crontab убирал, поскольку как я прочитал, если в начале скрипта стоит #!/bin/bash , то это не нужно.

  • Вопрос задан более трёх лет назад
  • 41553 просмотра

Все нашел ответ на свой вопрос:

1) Кронтаб нужно запускать так: sudo crontab -e — это нужно чтобы cron запускал скрипты из под root.
2) Инструкции для cron должны быть такими. Нужно обязательно писать bash перед указанием пути к скрипту. После указания пути к скрипту дописать >/dev/null 2>&1
Пример:

3) Сами скрипты действительно должны быть лишены sudo, так как и так запускаются из под пользователя root.
Пример:

Можете объяснить что значит: >/dev/null 2>&1
У меня прописано сейчас вот так:
00 16,18,20,22 * * * garanty /home/garanty/www/garancy.finexpert.pro/ftpset.sh 2>/home/garanty/www/garancy.finexpert.pro/tmp/logscron.txt

Не запускается, хотя в логах пишет, что все нормально.

2>/home/garanty/www/garancy.finexpert.pro/tmp/logscron.txt — эта штука должна записывать в файл logscron.txt ошибки если они будут?

> Можете объяснить что значит: >/dev/null 2>&1
stdout — в /dev/null, stderr — туда же, куда stdout

Источник

Читайте также:  Сабвуфер для ноутбука asus sonicmaster не работает
Оцените статью