Giriş

Hem Classroom hem de üçüncü taraf araçlardan yararlanan öğretmenler, kurslarını ve öğrenci listelerini çeşitli platformlarda oluşturmakla yükümlüdür. Bu işlem, CSV yüklemeleri kullanılarak veya e-postaları tek tek girerek manuel olarak yapılabilir. Classroom API'si sayesinde üçüncü taraf araçlar, API'nin en yaygın kullanım alanı olan öğrenci içe aktarma entegrasyonu yaparak öğretmenlerinin iş yükünü azaltabilir.

Öğrenci listesi içe aktarma özelliği, öğretmen veya yönetici izinleriyle üçüncü taraf platformların derse ait meta verileri, öğretmenleri ve öğrencileri derse göre almasına olanak tanır. Öğretmenler, verdikleri derslerle ilgili ayrıntıları alabilir. Yöneticiler ise alanın tamamındaki tüm kurslarla ilgili ayrıntılara erişebilir. Bu esneklik, geliştiricilerin yönetici kimlik bilgilerini kullanarak Classroom öğrenci listelerini kendi platformlarına, hem bireysel öğretmen düzeyinde hem de tüm alan genelinde sorunsuz bir şekilde eklemesine olanak tanır.

Bir öğrenci listesi içe aktarma entegrasyonunun nasıl görünebileceğine dair teknik ayrıntılara geçmeden önce örnek bir iş akışını inceleyelim:

  1. Üçüncü taraf uygulamasında, öğretmen bir Classroom Dersini içe aktarma seçeneğini tercih eder.

  2. Üçüncü taraf uygulaması, Classroom API üzerinden courses.list yöntemini çağırır. Bu yöntem, tüm öğretmenin derslerini içeren bir yanıt JSON yanıtı döndürür.

  3. Üçüncü taraf uygulama, json yanıtında öğretmenin ders başlıklarını seçmesi için öğretmenin derslerini gösterir. Bir sonraki adıma geçmek için uygulamanın kurs kimliklerini takip etmesi gerekir.

  4. Seçilen ders kimliği ile üçüncü taraf uygulama students.list ve teachers.list yöntemlerini çağırır ve öğretmenlerin içe aktarma işlemini onaylaması için web sitesinde tüm adları gösterir.

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

İş akışında bahsedilen yöntemlerin her biriyle ilgili olarak her bir yöntemin 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 öneririz:

  1. Dersleri Classroom API ile yönetme
  2. Öğrencileri ve Öğretmenleri Yönetme

Yukarıda ayrıntıları verilen öğrenci listesi içe aktarma iş akışını özetleyen şema.

Başlayın

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. Kurs meta verilerinin hangileri olduğunu Referans belgelerinde görebilirsiniz ancak gerekli bazı veya yaygın alanlar aşağıda özetlenebilir:

Alan Kullan
id Öğrenci veya öğretmenleri alan API istekleri için zorunludur
ad Kullanıcıların kullanım kolaylığı (ör. web sitenizde görüntüleme) için önerilir
ownerId Bir dersin ana öğretmenini doğru şekilde tanımlamak için alan genelinde içe aktarma sırasında gereklidir

Bu kurs bilgileri, yukarıdaki iş akışının 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ı ders durumunun tümünün derslerini döndürür. Öğretmenlerin kullanmakta olduğu dersleri almak için ACTIVE değerinin belirtilmesini öneririz.
pageSize Kendi kurslarını içe aktaran öğretmenlerin API çağrısının yanıt süresini kısaltmak için küçük (10'dan az) bir pageSize belirtmesini öneririz.
pageToken Sayfalandırılmış istekler kullanıyorsanız gereklidir.
teacherId Alan yöneticileri genellikle ders verdiği için bu öneri verilmektedir. Belirtilmezse istek, tüm alandaki öğretmenler için dersleri döndürür.
fields API çağrısının yanıt süresini kısaltmak için önerilir.

Uygulamanız, daha önce aldığınız ders kimliklerini kullanarak artık söz konusu kurs veya derslere ait öğrenci ve yardımcı öğretmenlerin listesini alabilir. Bu kurs kimliği, teachers.list ve students.list için gerekli tek sorgu parametresidir ancak API çağrılarınızın yanıt süresini kısaltmak için pageSize ve fields parametrelerini belirtmeyi de düşünebilirsiniz.

Öğrenci ve öğretmen kaynakları için mevcut tüm alanları ilgili belgelerde bulabilirsiniz. Çoğunlukla kullanılan ve genellikle gerekli olan iki alan profile alanındadır: profile.name ve profile.emailAddress.

Alan Kullan
profile.name Kullanıcıların kullanım kolaylığı (ör. web sitenizde görüntüleme) için önerilir
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 yetkilendirme istemesi gerekir. Bu iş akışını uygulamak için gereken üç (3) kapsam vardır:

  • https://www.googleapis.com/auth/classroom.courses.readonly
    • Google Classroom Dersler'e salt okuma erişimi sağlar
  • https://www.googleapis.com/auth/classroom.rosters.readonly
    • Google Classroom derslerinin görev dağıtıcılarına (öğ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 sağlar

Listeleri Pub/Sub Bildirimleriyle Senkronize Etme

Öğretim yılı ilerledikçe, öğrenciler bıraktıkça veya ders ekledikçe öğrenci listeleri değişebilir. Pub/Sub bildirimleri eklemek, üçüncü taraf uygulamanızı Classroom değerlendirme araçları ile senkronize halde tutmanıza olanak tanır. Bildirim almak için bir Google Cloud Pub/Sub konusu oluşturup konuyu Classroom API'ye kaydetmeniz gerekir. Bu kayıt, Classroom'un, belirtilen feed'den belirtilen konuya veri göndermesi için yapılan bir istektir. Bu feed, bir öğretmenin Classroom öğrenci listesiyle yeniden senkronizasyon için etkinlik tetikleyicisi olacaktır.

Push bildirimlerini kullanmak, doğrulama için gönderilmesi gerekmeyen bir ek kapsam gerektirir:

  • https://www.googleapis.com/auth/classroom.push-notifications
    • Uygulamanızın tüm push bildirimi etkinliklerine kaydolmasına izin verir

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

Classroom push bildirimleriyle nasıl entegrasyon hakkında daha fazla bilgi edinmek için Push Bildirimlerini Yönetme kılavuzumuzu inceleyin.