Learning Tools Interoperability (LTI), öğrenim yönetim sistemlerinde üçüncü taraf entegrasyonları oluşturmaya yönelik açık bir çerçevedir. Classroom eklentileri ve LTI araçları benzer kullanıcı yolculuklarını desteklese de iki çerçeve doğrudan uyumlu değildir. Bu kılavuzda, iki entegrasyon türü karşılaştırılmakta ve temel farklılıklar vurgulanmaktadır. Ayrıca, bir LTI aracını Classroom eklentisi olarak çalışacak şekilde uyarlarken benzer kullanıcı yolculukları elde etmenin yollarını da önerir.
Platform ile araçlar arasındaki etkileşimler
LTI araçları ile Classroom eklentileri arasındaki temel fark, bilgi alışverişinin yapılma şeklidir. LTI araçları genellikle yükleri bir LTI platformuna iletmek için HTTP POST kullanırken Classroom eklentileri, Google Classroom REST API'yi kullanarak kaynak oluşturur ve alır.
Aşağıdaki tabloda, Google Classroom ile temel LTI aracı davranışlarının nasıl elde edileceği özetlenmiştir.
| Özellik | LTI | Classroom |
|---|---|---|
| Ödev oluşturma | Ödev ve Not Hizmetleri | CourseWork ve AddOnAttachment kaynakları oluşturma |
| Notları yayınlama | Ödev ve Not Hizmetleri | CourseWork ve AddOnAttachment öğrenci gönderimlerini düzeltme |
| Rotaları başlatma | Derin Bağlantı | AddOnAttachment kaynaklarında URI'leri belirtme |
| Kurs listelerini okuma | Adlar ve Rol Sağlama Hizmetleri | Bir kurstaki Student ve Teacher profillerini alma |
LTI aracını Classroom eklentisine uyarlama
Birçok LTI etkileşiminin Classroom eklentileri çerçevesinde benzerleri vardır. Aşağıdaki bölümlerde bazı temel kavramlar ve önerilen işlem adımları ele alınmaktadır.
Uygulamanızı yapılandırın
Google Classroom ile yapılan tüm programatik etkileşimler için bir Google Cloud projesi gerekir. Uygulama girişinizi, Classroom eklentinizin son kullanıcılara nasıl görüneceğini tanımlayan aynı Cloud projesinde yapılandıracaksınız. Simge sağlarsınız, uygulama adını ve açıklamasını ayarlarsınız ve ürününüzün gerektirdiği OAuth kapsamı izinlerini yapılandırırsınız.
Eklenti uygulamanızı listelemeden yüklemek genellikle son kullanıcıların gerçekleştirmesi gereken tek yapılandırma adımıdır. Bu, bir LTI aracını etkinleştirmeye ve dağıtmaya benzer. Son kullanıcıların herhangi bir kayıt işlemi yapması veya yapılandırma ayrıntılarını yönetmesi gerekmez. Ancak yöneticinin Marketplace'te uygulamaya izin vermesi ve üçüncü taraf veri erişim izinlerini yapılandırması gerekebilir.
Öneri: Classroom eklentisi için Google Cloud projesi oluşturma ve yapılandırma kılavuzumuzu inceleyin. En önemlisi, Marketplace SDK'sında Ek Keşif URI'si olarak eklenti başlatma için bir URL belirtin. Bu URL, kullanıcıyı uygun kimlik doğrulama akışına yönlendirdiği sürece mevcut bir LTI aracı başlatma rotasıyla aynı olabilir.
Kimlik doğrulama akışı
LTI, istemci uygulaması ve kimlik doğrulama sunucusunun imzalı bir JWT alışverişi yaptığı 2 ayaklı akış kullanır. Yönetici aracı yapılandırdığında izin verilmiş sayıldığından kullanıcıların araca verilerine erişim izni vermesi gerekmez.
Buna karşılık Google'ın OAuth akışı, son kullanıcıyı, harici istemci uygulamasını ve kimlik doğrulama sunucusunu içeren bir 3 aşamalı akıştır. İstemci, kullanıcının Google Classroom kaynaklarına erişim izni veren, kullanıcının açık iznini içeren jetonlar alır.
Bir eklenti uygulamasının hizmet hesaplarını kullanarak benzer bir 2 ayaklı imzalı JWT davranışı elde etmesi mümkündür. Bunlar, bireysel bir kullanıcı yerine bir uygulamaya ait olan ve kullanıcı izni olmadan işlem yapabilen hesaplardır. Hizmet hesaplarının kullanılabilmesi için yönetici yapılandırması ve yönetimi gerekir. Alan genelinde yetki verilen hizmet hesaplarının kötüye kullanım vektörü olma ihtimali yüksek olduğundan bu hesapların kullanılması kesinlikle önerilmez. Daha fazla bilgi için Google Classroom entegrasyonlarıyla alan genelinde yetki verme kılavuzumuza bakın.
Öneri: Aracınız veya eklentinizle ilişkili bir URL gelen istek aldığında, Classroom eklentisi sorgu parametrelerinin istekte bulunup bulunmadığını inceleyin. Google Identity SDK'yı kullanarak kullanıcı için erişim kimlik bilgilerini alın. Kimlik bilgilerini kullanıcının oturumunda saklayın ve sonraki Classroom API isteklerini yapmak için kullanın. Sorgu parametreleri mevcut değilse platformun LTI uç noktalarıyla etkileşim kurmak için HTTP isteklerini kullanın.
Google Classroom'da eklenti içeriği oluşturma
Classroom eklentileri tek bir içerik türünü destekler: Harici olarak barındırılan sayfalara yönelik URL bağlantıları. Bu bağlantılar, kullanıcı eklentinizle etkileşime geçtiğinde açılacak web rotalarını tanımlayan AddOnAttachment kaynaklarında yer alır. Her URL belirli senaryolarda açılır. Ayrıntılı bilgi için iFrame kılavuzlarımıza göz atın. Bu URL'ler, LTI Kaynak Bağlantıları'na benzer.
Classroom eklentileri, dosyalar, resimler veya HTML parçaları gibi diğer içerik türlerini desteklemez.
Öneri: Kullanıcılar ürününüzde içerik seçtiğinde OAuth kimlik bilgilerini alın ve AddOnAttachments.create isteği gönderin. İstek, öğrenci görünümü, öğretmen görünümü ve (isteğe bağlı olarak) notlandırma görünümü URL'lerini içeren bir AddOnAttachment nesnesi içermelidir. Duyurular, ödevler veya kurs materyallerine ek oluşturmak için ayrı API uç noktaları olduğunu unutmayın. Yalnızca ödevlerde oluşturulan ekler, not verme görünümüne sahip olabilir. Bunun nedeni, öğrenci gönderimini kabul eden tek Classroom akışı öğesi türünün bu olmasıdır.
Framework özellik karşılaştırması
Entegrasyon yerleşimleri
Classroom eklentileri, duyurulara, ödevlere ve kurs materyallerine ekler oluşturur. Bunlar, Classroom kullanıcı arayüzünde bir kursun Akış sekmesinde görünen öğelerdir.
Öğretmenler, ödev oluşturma akışındaki seçicide bir eklenti seçerek eklenti eki oluşturma sürecini başlatır. Kullanıcılara sunulan her görünümün ayrıntılı açıklaması için iFrame kılavuzlarına bakın.
Alternatif olarak geliştiriciler, eklenti ekleriyle programatik olarak ödev oluşturabilir. Ayrıntılar için Google Classroom dışında ek oluşturma ile ilgili kılavuzumuza bakın.
Başlatma bağlamı bilgileri
Classroom, bir eklenti rotası açarken her URL'ye çeşitli sorgu parametreleri ekler. Bunlar her zaman akış öğesi türünü ve kurs ile akış öğesinin tanımlayıcılarını içerir. Iframe görünümüne bağlı olarak ek veya gönderim tanımlayıcıları, ek oluşturmayı yetkilendiren bir jeton ya da bağlantıdan eklenti ekine yükseltme URL'si gibi başka bilgiler de bulunabilir.
Classroom, kullanıcı veya kurumla ilgili herhangi bir bilgiyi varsayılan olarak aktarmaz. Kullanıcı hakkında bilgileri (kullanıcı kimliği dahil) Classroom API UserProfile kaynağını kullanarak edinebilirsiniz. Kullanıcı bir alan yöneticisiyse Workspace Yönetici SDK'sından kurum hakkında bilgi edinebilirsiniz.
Kimlik doğrulama ve yetkilendirme
Classroom eklentileri, kullanıcı kimlik doğrulaması için Google ile oturum açma özelliğini kullanmalıdır. Oturum açtıktan sonra kullanıcılar, OAuth 2.0 kapsamları aracılığıyla uygulamanıza izin verir. Uygulamanız, kullanılabilir OAuth kapsamlarının herhangi bir kombinasyonunu kullanabilir.
Uygulama keşfi ve yapılandırması
Kullanıcılar, Google Workspace Marketplace'ten Classroom eklentilerini bulup "yükler". Tek tıklamayla yükleme, eklenti uygulamasını tek bir öğretmenin kullanımına sunar. İsteğe bağlı olarak, bir yönetici eklenti uygulamasını bir kuruluş birimindeki veya alandaki tüm öğretmenler için yükleyebilir. Uygulamayla oluşturulan ekler, dersteki tüm öğrenciler tarafından erişilebilir. Son kullanıcıların, tek tek Classroom eklentileri için jetonları, anahtarları veya tanımlayıcıları yönetmesine gerek yoktur.
Kullanıcı deneyimi ve ürün akışı
Çoğu durumda, bir LTI aracının mevcut ürün akışı, Classroom eklentisi olarak iyi çalışır. LTI aracına benzer şekilde, Classroom eklentisi de platformumuzdaki içeriğinize bağlantılar oluşturup yönetmenize olanak tanır. Classroom eklenti ekleri, LTI derin bağlantı bağlantılarına benzer. LTI aracınız, barındırılan içeriğinize yönlendiren URL'ler oluşturuyorsa Classroom eklentisi olarak iyi çalışır.
Öğrenci çalışmalarına not verme
Classroom eklenti ekleri, Classroom notlandırma görünümünde görüntülenebilir ve notlandırılabilir. Öğrenci gönderimi gerektiren içerik eklerken, eğitmenin belirli bir öğrencinin çalışmasını görüntüleyip not verebileceği bir student_work_review_uri alanı sağlarsınız. Bu, bir aracın yalnızca hem öğretmenler hem de öğrenciler için ortak olan bir target_link_uri tanımladığı LTI'dan farklıdır. Classroom eklentilerinin uygulanması, yakında kullanıma sunulacak LTI Gönderim İnceleme Hizmeti'ne en çok benzeyen uygulamadır.