Как я могу получить доступ к функциям, определенным в редакторе скриптов Google, за его пределами?

Если у меня есть функция, написанная в редакторе сценариев Google Spreadsheets, которая извлекает данные из электронной таблицы в формате JSON, как мне получить доступ к этой функции вне редактора сценариев в моем собственном коде? Я хочу получить доступ к этому JSON и манипулировать им в своем собственном коде. Есть ли способ сделать это с помощью API электронных таблиц? Я форматирую его определенным образом в редакторе сценариев, поэтому я не могу просто использовать предоставленный json-in-script. В вызове (http://spreadsheets.google.com/feeds/feed/key/worksheet/public/basic?alt=json-in-script&callback=myFunc) есть функция обратного вызова для myFunc. Могу ли я использовать функцию, которую я определил в редакторе скриптов, вместо myFunc?


person user3783615    schedule 27.06.2014    source источник
comment
что вы подразумеваете под вне редактора скриптов? в другом СС? в другом приложении? просьба уточнить.   -  person Serge insas    schedule 27.06.2014
comment
@Sergeinsas в другом приложении. В данном случае это веб-приложение. Как я могу вызвать функцию, определенную в редакторе сценариев, в коде этого веб-приложения?   -  person user3783615    schedule 27.06.2014


Ответы (1)


После вашего комментария, в котором приведены некоторые подробности вашего варианта использования, есть функция Google-Apps-Script, специально разработанная для предоставления доступа к некоторым функциям, которые вы написали из другого скрипта: она называется libraries и полностью описано в документации.


ИЗМЕНИТЬ после второго комментария:

Вызов функции GS из скрипта javascript (или любого другого языка), который не является скриптом Google (GS), невозможен, если вы планируете использовать его как функцию...

но

то, что вы можете в конечном итоге сделать - в зависимости от данных, которые должна обрабатывать эта функция, - это развернуть скрипт как веб-приложение, работающее как служба, и вызвать эту службу из вашего внешнего приложения, используя эквивалент urlFetch (это служба, которая делает это в GS).

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

Конечно, этот рабочий процесс имеет несколько ограничений и может быстро усложниться, но во многих случаях он вполне работоспособен.

Обратите внимание, что URL-адрес, который вам нужно будет использовать в «версии», заканчивается на .exec (не уверен, что это слово правильное, но я имею в виду опубликованный URL-адрес, который соответствует версии вашего скрипта, а не «.dev», который тот можно использовать для тестирования скрипта в GS).

Вы найдете подробности об этом в документации и во многих других ресурсах, включая SO. URL-адрес обычно выглядит примерно так:

https://script.google.com/macros/s/AKfycbyw-2WtmF7wsd__________azjImbMWm5YrxB8/exec?someParameter=someValue&otherParam=otherVal // etc...
person Serge insas    schedule 27.06.2014
comment
Спасибо! Итак, я вижу, как можно получить доступ к библиотеке и использовать функции, объявленные в указанной библиотеке, в своем собственном редакторе сценариев, но возможно ли получить доступ к этим библиотечным функциям в сценарии, который не написан в редакторе сценариев Google? Например, у меня есть файл Javascript, сохраненный на моем локальном хосте. Я хочу иметь возможность извлекать функции, определенные в указанной библиотеке, в свой собственный файл Javascript. Это возможно? Или доступ к библиотечным функциям возможен только через редакторы скриптов Google? - person user3783615; 27.06.2014