Giriş

Hem Classroom'u hem de üçüncü taraf araçlarından yararlanan öğretmenler, kursları ve öğrenci listelerini birden fazla platformda oluşturma zorluğunu yaşar. Bu işlem, CSV yüklemeleri kullanılarak veya e-postalar tek tek girerek manuel olarak yapılabilir. Ancak Classroom API'deki üçüncü taraf araçlar, API'nin en yaygın kullanım alanı olan öğretmen içe aktarma ile entegrasyon sağlayarak öğretmenlerinin 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 alan genelinde 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. Seçilen ders kimliğiyle üçüncü taraf uygulaması, students.list ve teachers.list yöntemlerini çağırır ve öğretmenlerin içe aktarma işlemini onaylaması için tüm adları kendi 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ında yeni içe aktarılan kursa katılmaya davet ediyor.

İş akışında belirtilen yöntemlerin her birinin tam olarak nasıl davrandığını görmek için API Explorer'ı 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çbiri gerekli olmasa da ö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. Belirtilmemesi durumunda istek, alanın tamamındaki öğretmenler için dersleri 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 zorunlu olan tek sorgu parametresidir. Ancak benzer şekilde, API çağrılarınızın yanıt süresini kısaltmak 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.

Bu kurs veya öğrenci listesi ayrıntılarından herhangi birini Classroom'dan almak ve kullanmak için uygulamanızın kullanıcılardan yetki talep etmesi 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
    • Öğretmenlerin ve öğrencilerin e-posta mülküne Okuma erişimi verir

Öğrenci listelerini Pub/Sub bildirimleriyle 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şturmanız ve ardından konuyu Classroom API'ye kaydetmeniz gerekir. 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

Öğrenci listesi içe aktarma iş akışını push bildirimleriyle özetleyen şema

Classroom push bildirimleri ile nasıl entegrasyon sağlanacağı hakkında daha fazla bilgi edinmek için Push Bildirimleri'ni yönetme rehberimize göz atın.