Giriş

Hem Classroom'u hem de üçüncü taraf araçlarını kullanan öğretmenler, derslerini ve değerlendirme ölçeklerini birden fazla platformda ayarlama zorluğuyla karşı karşıya kalır. Bu işlem, CSV yüklemeleri kullanılarak veya e-postalar tek tek girilerek manuel olarak yapılabilir. Ancak Classroom API ile üçüncü taraf araçları, API'nin en yaygın kullanım alanı olan sınıf listesi içe aktarma ile entegre olarak öğretmenlerin iş yükünü azaltabilir.

Sınıf listesi içe aktarma, üçüncü taraf platformların öğretmen veya yönetici izinleriyle ders bazında bir kursun meta verilerini, öğretmenlerini ve öğrencilerini almasına olanak tanır. Öğretmenler, verdikleri derslerin ayrıntılarını alabilirken yöneticiler bir alanın tamamındaki tüm derslerin ayrıntılarına erişebilir. Bu esneklik sayesinde geliştiriciler, Classroom listelerini platformlarına hem tek tek öğretmen düzeyinde hem de yönetici kimlik bilgilerini kullanarak alan genelinde sorunsuz bir şekilde aktarabilir.

Bir sınıf 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 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 kurslarının başlıklarını gösterir. Öğretmen, bu başlıklar arasından birini seçebilir. Uygulamanın bir sonraki adıma geçmek için kurs kimliklerini takip etmesi gerekir.

  4. Seçilen kurs kimliğiyle üçüncü taraf uygulaması, students.list ve teachers.list yöntemlerini çağırır ve tüm adları web sitesinde göstererek öğretmenlerin içe aktarma için onaylamasını sağlar.

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

İş akışında belirtilen yöntemlerin her biri için API Gezgini'ni kullanarak her yöntemin tam olarak nasıl davrandığını görebilirsiniz. Bu kılavuzu tamamlamadan önce aşağıdaki ön okumaları yapmanızı da ö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 sınıf listesi içe aktarma işleminizin ayrıntılarını uygulamadan önce API aracılığıyla hangi kurs ve kullanıcı bilgilerini almanız gerektiğini belirlemeniz gerekir. Hangi kurs meta verilerinin kullanılabildiğini Referans belgelerinde görebilirsiniz. Ancak gerekli olan veya yaygın olarak kullanılan bazı alanlar aşağıda özetlenmiştir:

Alan Kullan
id Öğrenci veya öğretmen bilgilerini alan API istekleri için gereklidir.
ad Kullanıcının kullanım kolaylığı için önerilir (ör. web sitenizde gösterme)
ownerId Bir kursun asıl öğretmenini doğru şekilde tanımlamak için alan genelinde içe aktarma yaparken 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çbir parametre gerekli olmasa da önerilen bazı parametreler şunlardır:

Parametre Kullan
courseState Belirtilmediğinde API, altı kurs durumunun tümündeki kursları döndürür. Öğretmenlerin şu anda kullandığı kursları almak için ACTIVE belirtmenizi ö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 bir pageSize (10'dan az) belirtmelerini öneririz.
pageToken Sayfalandırılmış istekler kullanıyorsanız gereklidir.
teacherId Alan yöneticileri genellikle kurs verdiğinden önerilir. Belirtilmediğinde istek, alanın tamamındaki öğretmenler için kursları döndürür.
Fields API çağrısının yanıt süresini kısaltmak için önerilir.

Uygulamanız, daha önce alınan kurs kimliklerini kullanarak artık söz konusu kurs veya kursların öğ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 kısaltmak için pageSize ve fields parametrelerini de belirtmeyi düşünebilirsiniz.

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

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

Classroom'daki bu kurs veya sınıf listesi 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) gerekli kapsam vardır:

  • 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 listelerine (öğretmenler ve öğrenciler) salt okuma erişimi sağlar.
  • https://www.googleapis.com/auth/classroom.profile.emails
    • Öğretmenlerin ve öğrencilerin e-posta özelliğine okuma erişimi sağlar.

Pub/Sub bildirimleriyle sınıfları senkronize etme

Öğrenciler ders bıraktıkça veya ders ekledikçe okul yılı ilerledikçe sınıf listeleri değişebilir. Pub/Sub bildirimleri ekleyerek üçüncü taraf uygulamanızı Classroom listeleriyle senkronize edebilirsiniz. Bildirim almak için bir Google Cloud Pub/Sub konusu oluşturur ve ardından bu konuyu Classroom API'ye kaydedersiniz. Bu kayıt, Classroom'un belirli bir feed'deki verileri belirli bir konuya göndermesi için yapılan bir istektir. Bu feed, bir öğretmenin Classroom sınıf listesiyle yeniden senkronizasyon için etkinlik tetikleyicileri olacaktır.

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

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

Push bildirimleriyle birlikte kadro içe aktarma iş akışını özetleyen şema

Classroom push bildirimleriyle entegrasyon hakkında daha fazla bilgi için Push Bildirimlerini Yönetme Rehberimizi inceleyin.