Wprowadzenie

Nauczyciele, którzy korzystają zarówno z Classroom, jak i narzędzi innych firm, napotykają wyzwanie polegające na skonfigurowaniu zajęć i list uczniów na wielu platformach. Możesz to zrobić ręcznie, przesyłając plik CSV lub wpisując adresy e-mail pojedynczo. Interfejs Classroom API pozwala jednak zmniejszyć obciążenie nauczyciela dzięki integracji z najczęstszym przypadkiem użycia tego interfejsu: importowaniem list uczniów.

Importowanie list uczniów pozwala platformom firm zewnętrznych pobierać metadane poszczególnych zajęć oraz informacje o nauczycielach i uczniach w poszczególnych zajęciach z uprawnieniami nauczyciela lub administratora. Nauczyciele mogą uzyskać szczegółowe informacje o kursach, na których uczą, a administratorzy – do szczegółów wszystkich zajęć w całej domenie. Dzięki temu deweloperzy mogą bezproblemowo dodawać listy uczniów w Classroom zarówno na poziomie pojedynczego nauczyciela, jak i w całej domenie przy użyciu danych logowania administratora.

Zanim przejdziemy do szczegółów technicznych dotyczących integracji importowania listy uczniów, przyjrzyjmy się najpierw przykładowi przepływu pracy:

  1. W aplikacji innej firmy nauczyciel wybiera opcję zaimportowania kursu Classroom.

  2. Aplikacja innej firmy wywołuje metodę courses.list przy użyciu interfejsu Classroom API, który zwraca odpowiedź w formacie JSON ze wszystkimi kursami nauczyciela.

  3. Aplikacja innej firmy na podstawie odpowiedzi json wyświetla tytuły kursów nauczyciela, aby umożliwić mu wybranie odpowiedniego tytułu. Aby przejść do następnego kroku, aplikacja będzie musiała zapisywać identyfikatory zajęć.

  4. Za pomocą wybranego identyfikatora zajęć aplikacja innej firmy wywołuje metody students.list i teachers.list oraz wyświetla wszystkie nazwy w swojej witrynie, aby nauczyciele mogli je potwierdzić do zaimportowania.

  5. Aplikacja innej firmy wykorzystuje adresy e-mail zwrócone w plikach JSON z odpowiedziami students.list i teachers.list, aby zaprosić użytkowników do dołączenia do nowo zaimportowanego kursu na ich platformie.

W przypadku każdej metody wymienionej w przepływie pracy możesz za pomocą narzędzia API Explorer sprawdzić dokładnie, jak działają poszczególne metody. Przed przeczytaniem tego przewodnika warto też zapoznać się z tymi wskazówkami:

  1. Zarządzanie kursami przy użyciu interfejsu Classroom API
  2. Zarządzanie uczniami i nauczycielami

Diagram przedstawiający opisany powyżej proces importowania listy uczniów.

Pierwsze kroki

Zanim zaimplementujesz szczegóły importowania listy uczniów w Classroom, musisz określić, które informacje o zajęciach i użytkownikach chcesz pobierać za pomocą interfejsu API. Informacje o dostępnych metadanych kursów znajdziesz w dokumentacji referencyjnej. Poniżej znajdziesz podsumowanie niektórych wymaganych lub typowych pól:

Pole Użyj
id Wymagane w przypadku żądań do interfejsu API pobierających uczniów lub nauczycieli
nazwa Zalecane, aby były łatwe w użyciu dla użytkowników, tzn. aby były wyświetlane w witrynie
ownerId Element wymagany w przypadku importowania danych w całej domenie w celu prawidłowej identyfikacji głównego nauczyciela kursu

Informacje o zajęciach są pobierane w kroku courses.list powyżej. W tym żądaniu możesz podać określone parametry żądania. Choć żaden z nich nie jest wymagany w przypadku tej metody, niektóre z zalecanych parametrów to:

Parametr Użyj
courseState Jeśli pozostawisz nieokreślone, interfejs API zwróci kursy ze wszystkich 6 stanów kursów. Zalecamy użycie wartości ACTIVE w celu pobrania zajęć, których obecnie używają nauczyciele.
pageSize W przypadku nauczycieli, którzy importują własne kursy, zalecamy określenie małego (poniżej 10) parametru pageSize, aby skrócić czas odpowiedzi na wywołanie interfejsu API.
pageToken Wymagane, jeśli używasz żądań z podziałem na strony.
teacherId Zalecane, ponieważ administratorzy domen często prowadzą zajęcia. Jeśli nie określisz, żądanie zwróci kursy dla nauczycieli z całej domeny.
pola Zalecane, aby skrócić czas odpowiedzi na wywołanie interfejsu API.

Korzystając z pobranych wcześniej identyfikatorów zajęć, aplikacja może teraz pobierać listę uczniów i nauczycieli współprowadzących te zajęcia lub kursy. Ten identyfikator kursu jest jedynym wymaganym parametrem zapytania w przypadku teachers.list i students.list, ale możesz też podać parametry pageSize i fields, aby skrócić czas odpowiedzi na wywołania interfejsu API.

Wszystkie dostępne pola dotyczące zasobów uczniów i nauczycieli znajdziesz w odpowiednich dokumentach. Dwa najczęściej używane i zwykle wymagane pola znajdują się w polu profile: profile.name i profile.emailAddress.

Pole Użyj
profile.name Zalecane, aby były łatwe w użyciu dla użytkowników, tzn. aby były wyświetlane w witrynie
profile.emailAddress Wymagane w przypadku aplikacji, które mają jednoznacznie identyfikować uczniów

Aby pobrać z Classroom te informacje o zajęciach lub liście uczniów i ich używać, Twoja aplikacja będzie musiała poprosić użytkowników o autoryzację. Do wdrożenia tego przepływu pracy potrzebne są 3 (3) zakresy:

  • https://www.googleapis.com/auth/classroom.courses.readonly
    • zapewnia dostęp tylko do odczytu do kursów w Google Classroom.
  • https://www.googleapis.com/auth/classroom.rosters.readonly
    • Zapewnia dostęp tylko do odczytu do funkcji kursów w Google Classroom (dla nauczycieli i uczniów).
  • https://www.googleapis.com/auth/classroom.profile.emails
    • Przyznaje nauczycielom i uczniom uprawnienia do odczytu właściwości email.

Synchronizacja list z powiadomieniami Pub/Sub

Wraz z powrotem roku szkolnego listy uczniów mogą się zmieniać, w miarę jak uczniowie spadają lub dodają zajęcia. Dodanie powiadomień Pub/Sub umożliwi synchronizację aplikacji innych firm z programami Classroom. Aby otrzymywać powiadomienia, musisz skonfigurować temat Google Cloud Pub/Sub, a następnie zarejestrować go za pomocą interfejsu Classroom API. Rejestracja to żądanie przez Classroom wysłania danych z przesłanego pliku danych do danego tematu. Ten plik danych będzie wywoływać zdarzenia podczas ponownej synchronizacji z listą uczniów w Classroom.

Stosowanie powiadomień push będzie wymagało 1 dodatkowego zakresu, który nie musi być przesyłany do weryfikacji:

  • https://www.googleapis.com/auth/classroom.push-notifications
    • Zezwala aplikacji na rejestrowanie aktywności związanej z powiadomieniami push

Diagram przedstawiający proces importowania listy uczniów z powiadomieniami push

Więcej informacji o integracji z powiadomieniami push Classroom znajdziesz w naszym przewodniku po zarządzaniu powiadomieniami push.