Przenoszenie załączników z linkami do załączników dodatków do Classroom

Jednym ze sposobów, w jaki nauczyciele mogą dodawać do Classroom treści pochodzące od innych firm, jest wklejenie linku jako załącznik z linkiem na stronie tworzenia projektu. Aby poszerzyć wiedzę nauczycieli, możesz teraz skonfigurować dodatek, aby umożliwić nauczycielom uaktualnianie załącznika linku do załącznika dodatku.

Przegląd

Jeśli skonfigurujesz dodatek z tą funkcją, nauczyciele zostaną poproszeni o uaktualnienie linku do załącznika dodatku, gdy wkleją załącznik z linkiem na stronie tworzenia projektu. Nauczyciele zobaczą prośbę o zalogowanie się tylko wtedy, gdy mają już zainstalowany dodatek.

Gdy nauczyciel wyrazi zgodę na uaktualnienie linku do załącznika dodatku, uruchamiany jest element iframe Uaktualnij link z następującymi parametrami zapytania:

  • courseId
  • itemId
  • itemType
  • addOnToken
  • urlToUpgrade
  • login_hint (tylko jeśli użytkownik już autoryzował Twoją aplikację)

Pierwsze 4 parametry zapytania są odzwierciedleniem parametrów zapytania wprowadzonych w elemencie iframe wykrywania załączników. Parametr zapytania urlToUpgrade jest nowy i może Ci pomóc ocenić, jak należy utworzyć załącznik dodatku. Następnie możesz użyć innych parametrów zapytania, aby sprawdzić, czy użytkownik jest zalogowany, i wywołać metodę CreateAddOnAttachment courseWork, courseWorkMaterials lub announcements na podstawie wartości itemType. W elemencie iframe możesz wyświetlić ekran wczytywania, aby wskazać nauczycielowi, że właśnie tworzony jest załącznik dodatku.

Po utworzeniu załącznika dodatku element iframe zostanie zamknięty, a nauczyciel może go wyświetlić w projekcie w zwykły sposób.

Szczegóły implementacji technicznej

W tej sekcji znajdziesz istotne szczegóły techniczne tej funkcji.

Odczytywanie parametru zapytania urlToUpgrade

Parametr zapytania urlToUpgrade jest zakodowany w identyfikatorze URI, gdy jest przekazywany w elemencie iframe uaktualniania linku. Aby uzyskać adres URL w pierwotnej postaci, musisz go zdekodować. Jeśli np. używasz JavaScriptu, możesz to zrobić za pomocą funkcji decodeURIComponent().

Aby zapewnić optymalną wygodę korzystania z tej funkcji, po utworzeniu załącznika dodatku wyślij postMessage. Spowoduje to zamknięcie elementu iframe. Więcej informacji znajdziesz na stronie z informacjami o implementacji iframe.

Szczegóły konfiguracji

Te konfiguracje są wymagane do zintegrowania tej funkcji z dodatkiem:

  • URL elementu iframe uaktualnienia linku: to adres URL otwierany w elemencie iframe, gdy nauczyciel zgodzi się na uaktualnienie.

  • Wzorce adresów URL, które Classroom powinna wykryć i próbować uaktualnić: wzorce adresów URL mogą składać się z hosta i wielu prefiksów ścieżek.

    • Możesz podać wiele wzorców adresów URL.
    • Jeśli nie podasz żadnych prefiksów ścieżek, każdy adres URL pasujący do hosta będzie można uaktualnić.
    • Uaktualniać można tylko adresy URL ze schematem https.
    • Wzorce adresów URL nie mogą zawierać localhost.
    • Prefiksy ścieżki nie mogą zawierać parametrów zapytania ani fragmentów adresów URL.
    • Prefiksy ścieżki mogą obecnie obsługiwać symbole wieloznaczne, ale hosty nie mogą:
      • example.com jest prawidłowym hostem, a /foo i /bar/*/baz to prawidłowe prefiksy ścieżek.
      • example.*.host.com nie jest prawidłowym hostem.
    • Symbol wieloznaczny między komponentami prefiksu ścieżki pasuje tylko do jednego komponentu i nie pasuje do wielu komponentów rozdzielonych ukośnikami. Rozważmy wzorzec adresu URL z hostem example.com i prefiksem ścieżki /bar/*/baz:
      • https://example.com/bar/123/baz to prawidłowe dopasowanie do wzorca adresu URL.
      • https://example.com/bar/123/baz/456/789 pasuje do wzorca adresu URL.
      • https://example.com/bar/123/456/baz nie jest prawidłowym dopasowaniem do wzorca adresu URL, bo symbol wieloznaczny w prefiksie ścieżki jest niezgodny z /123/456/.

Proces programowania

Wyślij URL elementu iframe uaktualnienia linków oraz wzorce adresów URL dla dodatku testowego lub produkcyjnego, wysyłając e-maila na adres classroom-link-upgrade-external@google.com.

Najpierw możesz podać konfiguracje dla prywatnego dodatku oraz dowolnego własnego środowiska testowego lub programistycznego. Zespół Classroom może włączyć te konfiguracje testowe przed włączeniem konfiguracji produkcyjnych, aby umożliwić Ci przetestowanie przepływu w domenie demonstracyjnej. Po włączeniu konfiguracji otrzymasz odpowiedź na swojego e-maila. Pamiętaj, że wzorce adresów URL korzystające z dyrektywy localhost nie są obsługiwane w przypadku tej funkcji.

Sformatuj e-maila tak, aby zawierał te informacje:

Google Cloud Project number: GCP_PROJECT_NUMBER

Link Upgrade iframe URL: LINK_UPGRADE_IFRAME_URL

URL Patterns:
- Host:HOST_1
- Path prefixes:
  - PATH_PREFIX_1
  - PATH_PREFIX_2

- Host:HOST_2
- Path prefixes:
  - PATH_PREFIX_3
  - PATH_PREFIX_4

// add more hosts and path prefixes as needed

Zastąp następujące elementy:

  • GCP_PROJECT_NUMBER: numer projektu Google Cloud, z którym jest powiązany dodatek.
  • LINK_UPGRADE_IFRAME_URL adres URL, który powinien się otworzyć w elemencie iframe uaktualnienia linku.
  • HOST_1: host, który powinien wykryć Classroom. Obsługiwany jest tylko schemat https.
  • PATH_PREFIX_1 i PATH_PREFIX_2: prefiksy ścieżek powiązane z adresem HOST_1, które Classroom ma wykryć i próbować uaktualnić.
  • HOST_2: host, który powinien wykryć Classroom. Obsługiwany jest tylko schemat https.
  • PATH_PREFIX_3i PATH_PREFIX_4: prefiksy ścieżek powiązane z identyfikatorem HOST_2, które Classroom ma wykryć i próbować uaktualnić.

Poniżej znajdziesz kilka sugestii, które warto wziąć pod uwagę podczas wdrażania tej funkcji.

Unikanie dodatkowej pracy przez nauczycieli

Zdecydowanie zalecamy korzystanie z elementu iframe, by w razie potrzeby ułatwić logowanie lub wyświetlać wskaźnik wczytywania. Ze względu na wygodę użytkowników nauczyciel nie powinien być pytany o żadne dodatkowe informacje, gdy zgodzi się na uaktualnienie wklejonego linku do załącznika dodatku. Jeśli jednak nie jest to możliwe w przypadku Twojego dodatku, możesz użyć elementu iframe uaktualniania linków, aby zebrać potrzebne dodatkowe informacje. Element iframe może też służyć do informowania nauczyciela, że uaktualnienie linku jest niemożliwe lub wystąpił błąd.

Uwzględnij komunikaty o błędach łatwego dla użytkownika dostępu

Jeśli nauczyciele wkleją i zaktualizują link, do którego nie mają dostępu, wyświetlaj w elemencie iframe łatwy dla użytkowników komunikat o błędzie, aby poinformować nauczycieli o problemie. Element iframe może też służyć do nadawania nauczycielowi odpowiednich uprawnień dostępu do treści.