Biblioteka to projekt skryptu, którego funkcje można ponownie wykorzystać w innych skryptach.
Uzyskiwanie dostępu do biblioteki
Aby uwzględnić bibliotekę w projekcie, musisz mieć do niej dostęp co najmniej na poziomie wyświetlania. Jeśli nie jesteś autorem biblioteki, którą chcesz uwzględnić, skontaktuj się z nim i poproś o dostęp.
Potrzebujesz identyfikatora skryptu biblioteki, którą chcesz uwzględnić. Gdy uzyskasz dostęp do biblioteki, identyfikator skryptu znajdziesz na stronie Ustawienia projektu
.Dodawanie biblioteki do projektu skryptu
- Po lewej stronie edytora Apps Script obok pozycji „Biblioteki” kliknij Dodaj bibliotekę .
- W polu „Identyfikator skryptu” wklej identyfikator skryptu biblioteki.
- Kliknij Wyszukaj.
- Kliknij menu Wersja i wybierz wersję biblioteki, której chcesz użyć.
- Sprawdź, czy domyślna nazwa „Identyfikator” jest tą, której chcesz używać w tej bibliotece. Jest to nazwa, której skrypt używa do odwoływania się do biblioteki. Jeśli na przykład ustawisz wartość
Test
, możesz wywołać metodę tej biblioteki w ten sposób:Test.libraryMethod()
. - Kliknij Dodaj.
Korzystanie z biblioteki
Korzystaj z biblioteki w taki sam sposób jak z domyślnej usługi. Jeśli na przykład Test
jest identyfikatorem Twojej biblioteki, wpisz Test
, a następnie od razu po nim kropkę, aby wyświetlić listę metod w bibliotece.
Dokumentację referencyjną dołączonej biblioteki można otworzyć, wykonując te czynności:
Po lewej stronie edytora skryptów obok nazwy biblioteki kliknij Więcej
> Otwórz w nowej karcie.Usuwanie biblioteki
Po lewej stronie edytora skryptów obok nazwy biblioteki kliknij Więcej
> Usuń > Usuń bibliotekę.Aktualizowanie biblioteki
Możesz zmienić wersję biblioteki lub zaktualizować jej identyfikator.
- Po lewej stronie edytora w sekcji „Biblioteki” kliknij nazwę biblioteki.
- Wprowadź zmiany i kliknij Zapisz.
Tworzenie i udostępnianie biblioteki
Aby używać projektu skryptu jako biblioteki i udostępniać go, wykonaj te czynności.
- Utwórz wdrożenie skryptu z określoną wersją.
- Udostępnij wszystkim potencjalnym użytkownikom biblioteki co najmniej dostęp na poziomie wyświetlania.
- Przekaż tym użytkownikom identyfikator skryptu, który znajdziesz na stronie Ustawienia projektu .
Sprawdzone metody
Oto kilka wskazówek, których należy przestrzegać podczas pisania biblioteki:
- Wybierz znaczącą nazwę projektu, ponieważ będzie ona używana jako domyślny identyfikator, gdy Twoja biblioteka będzie uwzględniana przez inne osoby.
- Jeśli chcesz, aby jedna lub więcej metod skryptu nie była widoczna (ani użyteczna) dla użytkowników biblioteki, możesz zakończyć nazwę metody podkreśleniem. Na przykład:
myPrivateMethod_()
. - Użytkownicy biblioteki widzą tylko właściwości globalne, które można wyliczyć. Dotyczy to deklaracji funkcji, zmiennych utworzonych poza funkcją za pomocą
var
i właściwości jawnie ustawionych w obiekcie globalnym. Na przykładObject.defineProperty()
z ustawioną wartościąenumerable
nafalse
tworzy symbol, którego możesz używać w bibliotece, ale nie jest on dostępny dla użytkowników. Jeśli chcesz, aby użytkownicy biblioteki mogli korzystać z funkcji autouzupełniania w edytorze skryptów i automatycznie generowanej dokumentacji, musisz mieć dokumentację w stylu JSDoc dla wszystkich funkcji. Oto przykład:
/** * Raises a number to the given power, and returns the result. * * @param {number} base the number we're raising to a power * @param {number} exp the exponent we're raising the base to * @return {number} the result of the exponential calculation */ function power(base, exp) { ... }
Określanie zakresu zasobów
Podczas pracy z bibliotekami możesz korzystać z 2 rodzajów zasobów: udostępnionych i nieudostępnionych. Wspólny zasób oznacza, że zarówno biblioteka, jak i skrypt, który ją zawiera, mają wbudowany dostęp do tej samej instancji zasobu. Poniższy diagram przedstawia zasób udostępniony na przykładzie właściwości użytkownika:
Zasób nieudostępniony oznacza, że zarówno biblioteka, jak i skrypt, który ją zawiera, mają wbudowany dostęp tylko do swojej instancji zasobu. Biblioteka może jednak udostępniać swoje nieudostępnione zasoby, udostępniając funkcje, które na nich działają. Oto przykład funkcji, którą możesz umieścić w bibliotece, aby udostępnić jej właściwości skryptu:
function getLibraryProperty(key) {
const scriptProperties = PropertiesService.getScriptProperties();
return scriptProperties.getProperty(key);
}
Poniższy diagram przedstawia zasób nieudostępniony na przykładzie właściwości skryptu:
W tej tabeli znajdziesz listę udostępnionych i nieudostępnionych zasobów:
Zasób | Udostępniono* | Nieudostępnione** | Uwagi |
---|---|---|---|
Zablokuj | Ta sama instancja jest widoczna dla wszystkich, w tym dla skryptów, gdy jest tworzona w bibliotece. | ||
Właściwości skryptu | Ta sama instancja jest widoczna dla wszystkich, w tym dla skryptów, gdy jest tworzona w bibliotece. | ||
Cache (Pamięć podręczna) | Ta sama instancja jest widoczna dla wszystkich, w tym dla skryptów, gdy jest tworzona w bibliotece. | ||
Reguły | Proste aktywatory utworzone w bibliotece nie są wywoływane przez skrypt zawierający. | ||
ScriptApp | |||
UiApp |
|
||
Właściwości użytkownika | |||
Rejestrator i zapis wykonywania | |||
Witryny, Arkusze i inne kontenery | Wywołanie funkcji getActive() zwraca kontener, w tym skrypt. |
||
MailApp i GmailApp | |||
* Oznacza to, że biblioteka nie ma własnej instancji funkcji lub zasobu i zamiast tego używa instancji utworzonej przez skrypt, który ją wywołał.
** Oznacza to, że biblioteka ma własną instancję zasobu lub funkcji, a wszystkie skrypty, które jej używają, mają dostęp do tej samej instancji i mogą z niej korzystać. |
Testowanie biblioteki
Aby przetestować bibliotekę, użyj wdrożenia head. Każda osoba, która ma dostęp do skryptu na poziomie edytora, może używać wdrożenia głównego.
Debugowanie biblioteki
Gdy używasz debugera w projekcie, który zawiera bibliotekę, możesz przejść do funkcji tej biblioteki. Kod pojawi się w debuggerze w trybie tylko do odczytu i w odpowiedniej wersji.