Biblioteki

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

  1. Po lewej stronie edytora Apps Script obok pozycji „Biblioteki” kliknij Dodaj bibliotekę .
  2. W polu „Identyfikator skryptu” wklej identyfikator skryptu biblioteki.
  3. Kliknij Wyszukaj.
  4. Kliknij menu Wersja i wybierz wersję biblioteki, której chcesz użyć.
  5. 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().
  6. 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.

  1. Po lewej stronie edytora w sekcji „Biblioteki” kliknij nazwę biblioteki.
  2. 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.

  1. Utwórz wdrożenie skryptu z określoną wersją.
  2. Udostępnij wszystkim potencjalnym użytkownikom biblioteki co najmniej dostęp na poziomie wyświetlania.
  3. 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:

  1. 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.
  2. 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_().
  3. 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ład Object.defineProperty() z ustawioną wartością enumerable na false tworzy symbol, którego możesz używać w bibliotece, ale nie jest on dostępny dla użytkowników.
  4. 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:

Udostępniony zasób

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:

Zasób nieudostępniony

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.