Giriş

Hem Classroom'dan hem de üçüncü taraf araçlarından yararlanan öğretmenler, derslerini ve öğrenci listelerini birden fazla platformda oluşturma zorluğuyla karşılaşır. Bu işlem, CSV yüklemeleri kullanılarak veya e-postalar tek tek girerek manuel olarak yapılabilir. Ancak Classroom API ile üçüncü taraf araçları, API'nin en yaygın kullanım alanı olan öğrenci listesi içe aktarma özelliğiyle entegre olarak öğretmenlerin iş yükünü azaltabilir.

Kayıt listelerini içe aktarma özelliği, üçüncü taraf platformların öğretmen veya yönetici izinleriyle bir dersin meta verilerini, öğretmenlerini ve öğrencilerini sınıf bazında almasına olanak tanır. Öğretmenler, verdikleri derslerin ayrıntılarını alabilir. Yöneticiler ise bir alanın tüm kurslarının ayrıntılarına erişebilir. Bu esneklik, geliştiricilerin Classroom sınıf listelerini hem tek bir öğretmen düzeyinde hem de yönetici kimlik bilgilerini kullanarak tüm bir alanda platformlarına sorunsuz bir şekilde eklemelerine olanak tanır.

Kadro içe aktarma entegrasyonunun teknik ayrıntılarına geçmeden önce bir örnek iş akışını inceleyelim:

  1. Öğretmen, üçüncü taraf uygulamasında Classroom Kursu içe aktarma seçeneğini belirler.

  2. Üçüncü taraf uygulaması, Classroom API aracılığıyla courses.list yöntemini çağırır. Bu yöntem, öğretmenin tüm kurslarını içeren bir yanıt JSON'u döndürür.

  3. Üçüncü taraf uygulaması, json yanıtından öğretmenin seçmesi için öğretmenin kurslarının başlıklarını gösterir. Uygulamanın, sonraki adıma geçmek için kurs kimliklerini takip etmesi gerekir.

  4. Üçüncü taraf uygulaması, seçili kurs kimliğiyle students.list ve teachers.list yöntemlerini çağırır ve öğretmenlerin içe aktarma işlemini onaylaması için tüm adları web sitesinde gösterir.

  5. Üçüncü taraf uygulaması, students.list ve teachers.list yanıt json'larında döndürülen e-postaları kullanarak kullanıcıları platformlarına yeni içe aktarılan kursa katılmaya davet eder.

İş akışında belirtilen yöntemlerin her birinin tam olarak nasıl davrandığını görmek için API Gezgini'ni kullanabilirsiniz. Bu kılavuzu bitirmeden önce aşağıdaki ön okumaları da yapmanızı öneririz:

  1. Classroom API ile kursları yönetme
  2. Öğrencileri ve öğretmenleri yönetme

Yukarıda ayrıntılı olarak açıklanan liste içe aktarma iş akışını özetleyen şema.

Başlarken

Classroom öğrenci listesi içe aktarma işleminizle ilgili ayrıntıları uygulamadan önce, API aracılığıyla hangi kurs ve kullanıcı bilgilerini almanız gerektiğini belirlemeniz gerekir. Referans dokümanlarında hangi kurs meta verilerinin kullanılabileceğini görebilirsiniz. Bununla birlikte, gerekli veya yaygın olarak kullanılan bazı alanları aşağıda özetleyebiliriz:

Alan Kullan
id Öğrenci veya öğretmen alan API istekleri için gereklidir
ad Kullanıcının kolayca kullanabilmesi için önerilir (ör. web sitenizde gösterilir)
ownerId Bir dersin ana öğretmenini doğru şekilde tanımlamak için alan genelinde içe aktarma işleminde gereklidir

Bu kurs bilgileri, yukarıdaki iş akışı courses.list adımında alınır. Bu istekte belirli istek parametrelerini belirtebilirsiniz. Bu yöntem için hiçbir parametre zorunludur ancak önerilen bazı parametreler şunlardır:

Parametre Kullan
courseState Belirtilmemişse API, altı kurs durumundan tüm kursları döndürür. Öğretmenlerin şu anda kullandığı kursları almak için ACTIVE değerini belirtmenizi öneririz.
pageSize Kendi kurslarını içe aktaran öğretmenler için API çağrısının yanıt süresini azaltmak amacıyla küçük (10'dan az) bir pageSize belirtmenizi öneririz.
pageToken Sayfaya ayrılmış istekler kullanıyorsanız gereklidir.
teacherId Alan yöneticileri genellikle kurslar verdiği için önerilir. Belirtilmemişse istek, alanın tamamındaki öğretmenlere yönelik kursları döndürür.
Fields API çağrısının yanıt süresini azaltmanız önerilir.

Daha önce alınan ders kimliklerini kullanarak uygulamanız artık ilgili ders veya derslerin öğrenci ve yardımcı öğretmen listesini alabilir. Bu kurs kimliği, teachers.list ve students.list için gerekli olan tek sorgu parametresidir ancak API çağrılarınızın yanıt süresini azaltmak için pageSize ve fields parametrelerini de belirtebilirsiniz.

Öğrenci ve öğretmen kaynakları için kullanılabilen tüm alanları ilgili dokümanlarda bulabilirsiniz. En yaygın kullanılan ve genellikle zorunlu olan iki alan profile alanındadır: profile.name ve profile.emailAddress.

Alan Kullan
profile.name Kullanıcının kolayca kullanabilmesi için önerilir (ör. web sitenizde gösterilir)
profile.emailAddress Öğrencileri benzersiz şekilde tanımlamak isteyen uygulamalar için gereklidir.

Classroom'dan bu kurs veya liste ayrıntılarından herhangi birini almak ve kullanmak için uygulamanızın kullanıcılardan yetkilendirme istemesi gerekir. Bu iş akışını uygulamak için üç (3) kapsam gereklidir:

  • https://www.googleapis.com/auth/classroom.courses.readonly
    • Google Classroom Kurslarına salt okuma erişimi sağlar.
  • https://www.googleapis.com/auth/classroom.rosters.readonly
    • Google Classroom kurslarının öğrenci listelerine (öğretmenler ve öğrenciler) salt okuma erişimi sağlar.
  • https://www.googleapis.com/auth/classroom.profile.emails
    • Öğretmenler ve öğrencilerin e-posta mülküne okuma erişimi sağlar.

Pub/Sub Bildirimleri ile Ekip Listelerini Senkronize Etme

Okul yılı ilerledikçe öğrenciler dersleri bıraktığında veya eklediğinde listeler değişebilir. Pub/Sub bildirimleri eklemek, üçüncü taraf uygulamanızı Classroom öğrenci listeleriyle senkronize tutmanıza olanak tanır. Bildirim almak için bir Google Cloud Pub/Sub konusu oluşturur ve ardından konuyu Classroom API'ye kaydedersiniz. Bu kayıt, Classroom'un belirli bir feed'den belirli bir konuya veri göndermesi için gönderilen bir istektir. Bu feed, öğretmenin Classroom öğrenci listesiyle yeniden senkronizasyon için etkinlik tetikleyicileri olacaktır.

Push bildirimleri kullanmak için bir ek kapsam gerekir. Bu kapsamın doğrulama için gönderilmesi gerekmez:

  • https://www.googleapis.com/auth/classroom.push-notifications
    • Uygulamanızın herhangi bir push bildirimi etkinliğine kaydolmasına izin verir

Kayıt listesini içe aktarma iş akışını push bildirimleriyle özetleyen şema

Classroom push bildirimleriyle entegrasyon hakkında daha fazla bilgi için Push bildirimlerini yönetme rehberimizi inceleyin.