Wprowadzenie

Nauczyciele, którzy korzystają zarówno z Classroom, jak i narzędzi innych firm, mają problem z konfigurowaniem zajęć i list uczniów na wielu platformach. Możesz to zrobić ręcznie, przesyłając pliki CSV lub wpisując adresy e-mail pojedynczo. Dzięki interfejsowi Classroom API narzędzia innych firm mogą jednak zmniejszyć obciążenie nauczycieli, integrując się z najczęstszym zastosowaniem interfejsu API: importowaniem list uczniów.

Importowanie list uczniów umożliwia platformom innych firm pobieranie metadanych zajęć, nauczycieli i uczniów w ramach poszczególnych zajęć z uprawnieniami nauczyciela lub administratora. Nauczyciele mogą pobierać szczegółowe informacje o kursach, które prowadzą, a administratorzy mają dostęp do szczegółowych informacji o wszystkich kursach w całej domenie. Dzięki temu deweloperzy mogą bezproblemowo wprowadzać listy uczniów z Classroom na swoją platformę na poziomie poszczególnych nauczycieli lub w całej domenie, korzystając z danych logowania administratora.

Zanim przejdziemy do szczegółów technicznych integracji importu list, przyjrzyjmy się przykładowemu przepływowi pracy:

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

  2. Aplikacja innej firmy wywołuje metodę courses.list za pomocą interfejsu Classroom API, który zwraca odpowiedź JSON ze wszystkimi kursami nauczyciela.

  3. Na podstawie odpowiedzi w formacie JSON aplikacja zewnętrzna wyświetla tytuły kursów nauczyciela, aby mógł on wybrać jeden z nich. Aby przejść do następnego kroku, aplikacja musi śledzić identyfikatory kursów.

  4. Po wybraniu identyfikatora kursu aplikacja zewnętrzna wywołuje metody students.list i teachers.list i wyświetla wszystkie nazwy w swojej witrynie, aby nauczyciele mogli potwierdzić import.

  5. Korzystając z adresów e-mail zwróconych w plikach JSON odpowiedzi students.list i teachers.list, aplikacja innej firmy zaprasza użytkowników do dołączenia do nowo zaimportowanego kursu na swojej platformie.

W przypadku każdej metody wymienionej w procedurze możesz użyć Eksploratora interfejsu API, aby sprawdzić, jak dokładnie działa każda z nich. Zanim skończysz czytać ten przewodnik, zapoznaj się też z tymi materiałami:

  1. Zarządzanie kursami za pomocą interfejsu Classroom API
  2. Zarządzanie uczniami i nauczycielami

Diagram podsumowujący proces importowania listy, który został opisany powyżej.

Pierwsze kroki

Zanim wdrożysz szczegóły importowania listy uczniów w Classroom, musisz określić, jakie informacje o kursie i użytkownikach chcesz pobrać za pomocą interfejsu API. Informacje o metadanych kursu znajdziesz w dokumentacji. Poniżej znajdziesz podsumowanie niektórych wymaganych lub często używanych pól:

Pole Użyj
id Wymagane w przypadku żądań API pobierających informacje o uczniach lub nauczycielach
nazwa Zalecane ze względu na łatwość użycia przez użytkownika, np.wyświetlanie w witrynie.
ownerId Wymagane podczas importowania na poziomie całej domeny, aby prawidłowo zidentyfikować głównego nauczyciela kursu.

Informacje o kursie są pobierane na etapie courses.list w przepływie pracy powyżej. W tym żądaniu możesz określić niektóre parametry. Żaden z nich nie jest wymagany w przypadku tej metody, ale zalecamy użycie tych parametrów:

Parametr Użyj
courseState Jeśli nie zostanie określony, interfejs API zwróci kursy we wszystkich 6  stanach kursu. Zalecamy podanie wartości ACTIVE, aby pobrać kursy, z których nauczyciele obecnie korzystają.
pageSize Nauczycielom, którzy importują własne kursy, zalecamy określenie małej wartości parametru pageSize (poniżej 10), aby skrócić czas odpowiedzi wywołania interfejsu API.
pageToken Wymagane, jeśli używasz żądań podzielonych na strony.
teacherId Zalecane, ponieważ administratorzy domeny często prowadzą kursy. Jeśli nie zostanie określony, żądanie zwróci kursy dla nauczycieli w całej domenie.
pola Zalecane, aby skrócić czas odpowiedzi wywołania interfejsu API.

Korzystając z pobranych wcześniej identyfikatorów kursów, aplikacja może teraz pobrać listę uczniów i nauczycieli współprowadzących dla danego kursu lub kursów. Ten identyfikator kursu jest jedynym wymaganym parametrem zapytania w przypadku teachers.list i students.list, ale możesz też rozważyć podanie parametrów pageSize i fields, aby skrócić czas odpowiedzi wywołań interfejsu API.

Wszystkie dostępne pola zasobów dla uczniów i nauczycieli znajdziesz w odpowiedniej dokumentacji. Dwa najczęściej używane i zwykle wymagane pola znajdują się w polu profile: profile.nameprofile.emailAddress.

Pole Użyj
profile.name Zalecane ze względu na łatwość użycia przez użytkownika, np.wyświetlanie w witrynie.
profile.emailAddress Wymagane w przypadku aplikacji, które chcą jednoznacznie identyfikować uczniów

Aby pobrać i wykorzystać dowolne z tych szczegółów kursu lub listy uczniów z Classroom, aplikacja musi poprosić użytkowników o autoryzację. Aby wdrożyć ten proces, musisz mieć 3 wymagane 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 list uczniów w Google Classroom (nauczyciele i uczniowie).
  • https://www.googleapis.com/auth/classroom.profile.emails
    • Zapewnia dostęp do odczytu właściwości email nauczycieli i uczniów.

Synchronizowanie list z powiadomieniami Pub/Sub

W trakcie roku szkolnego listy uczniów mogą się zmieniać, ponieważ uczniowie mogą rezygnować z kursów lub dodawać nowe. Dodanie powiadomień Pub/Sub umożliwi synchronizację aplikacji innej firmy z listami uczestników zajęć w Classroom. Aby otrzymywać powiadomienia, musisz skonfigurować temat Google Cloud Pub/Sub, a następnie zarejestrować go w interfejsie Classroom API. Rejestracja jest prośbą o wysyłanie przez Classroom danych z podanego pliku do podanego tematu. Ten plik danych będzie zawierać wyzwalacze zdarzeń do ponownej synchronizacji z listą uczniów nauczyciela w Classroom.

Korzystanie z powiadomień push wymaga dodatkowego zakresu, którego nie trzeba przesyłać do weryfikacji:

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

Diagram podsumowujący przepływ pracy importowania listy z powiadomieniami push

Więcej informacji o tym, jak zintegrować powiadomienia push z Classroom, znajdziesz w naszym przewodniku po zarządzaniu powiadomieniami push.