Sık karşılaşılan Google Classroom API hata mesajları

Bu sayfada, aşağıdaki hata türleriyle ilgili bazı yaygın Google Classroom API hata mesajları, sorunlar ve olası işlemler açıklanmaktadır:

HTTP 400: FAILED_PRECONDITION

Kullanıcı, bir sınıra veya uygulama durumuna (ör. CourseNotModifiable) ulaştığı için izin verilmeyen bir işlem yapmaya çalıştığında FAILED_PRECONDITION döndürülür. FAILED_PRECONDITION sorununu düzeltmek için kullanıcıya bazı işlemler yapmasını söyleyin ve ardından tekrar deneyin. Bazı durumlarda, kullanıcı adına durumu düzeltmek için alternatif uç noktalar da kullanabilirsiniz.

AttachmentNotVisible

AttachmentNotVisible, belirtilen eklerden bir veya daha fazlasının kullanıcı tarafından görünür olmadığını, istenen türde olmadığını ya da mevcut olmadığını gösterir. Örneğin, kullanıcıyla paylaşılmamış Drive öğeleri bu hatayı döndürür.

Olası işlem: Hataya neden olan durumu açıklayın ve kullanıcının eklediği tanımlayıcıları (ör. Drive dosya kimlikleri) yeniden kontrol etmesini önerin. Ayrıca, kullanıcının eki görüntülemek için uygun izinlere sahip olduğundan emin olun.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner, dersin Drive klasörünün sahibinin kaldırılamayacağını gösterir.

Olası işlem: Hataya neden olan durumu açıklayın ve kullanıcının kursun Drive klasörünün sahipliğini farklı bir kullanıcıya aktarıp tekrar denemesini önerin.

CannotRemoveCourseOwner

CannotRemoveCourseOwner simgesi, kurs sahibinin kaldırılamayacağını gösterir.

Olası işlem: Başarısızlığın nedenini açıklayın ve kurs sahibinin kaldırılamayabileceğini belirtin. Çoğu durumda, kullanıcı kendisini kaldırmaya çalışır ancak bu işleme izin verilmez.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete, bu sınıfın sahiplik aktarımı henüz devam ettiği için kurs sahibinin kaldırılamayacağını gösterir.

Olası işlem: Hataya neden olan durumu açıklayın ve kullanıcının, sınıfın sahipliğini aktarma işleminin tamamlanması için birkaç dakika beklemesini, ardından tekrar denemesini önerin.

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner, öğretmenin sahibi olmayan bir kurstan kaldırılamayacağını gösterir.

Olası işlem: Başarısızlığın nedenini açıklayın ve öğretmenin kaldırılmayabileceğini belirtin. Çoğu durumda, kurs sahibinin kullanıcı hesabı silinmiş ve bu durum, geçersiz bir kurs durumuna neden olmuştur.

CourseMemberLimitReached

CourseMemberLimitReached, denenmekte olan işlemin, izin verilen maksimum kurs üyesi sayısını aşacağını gösterir. Bu kod genellikle students.create() tarafından döndürülür. Daha fazla bilgi için Sınıfa öğrenci davet etme başlıklı Yardım Merkezi makalesinin "Sınıf boyutu sınırları" bölümüne bakın.

Olası İşlem: Hataya neden olan durumu açıklayın ve kullanıcının gereksiz kurs üyelerini kaldırmasını önerin.

CourseNotModifiable

CourseNotModifiable, ilgili kursun özelliklerinin (kurs durumu hariç) değiştirilmesine izin verilmeyen bir durumda olduğunu gösterir.

Olası işlem: Kullanıcıdan kursu değiştirilebilir kurs durumuna getirmesini isteyin. Durumu değiştirmek için courses.patch() simgesini kullanın. Kurs durumu, diğer özellikleri değiştiren bir istekte değiştirilebilir.

CourseTeacherLimitReached

CourseTeacherLimitReached, istenen işlemin, izin verilen maksimum kurs öğretmeni sayısını aşacağını gösterir. Bu kod genellikle teachers.create() yöntemiyle döndürülür. Daha fazla bilgi için Sınıfa yardımcı öğretmen ekleme başlıklı Yardım Merkezi makalesinin "Sınıf boyutu sınırlamaları" bölümünü inceleyin.

Olası İşlem: Hataya neden olan durumu açıklayın ve kullanıcının gereksiz kurs öğretmenlerini kaldırmasını önerin. Uygulamanız için geçerliyse kullanıcı adına öğretmen listelerini yönetmek üzere teachers.delete() yöntemini kullanabilirsiniz.

CourseTitleCannotContainUrl

CourseTitleCannotContainUrl, kurs başlığına URL ekleneceğinden istenen işleme izin verilmediğini gösterir. URL kalıpları kurs başlıklarında desteklenmez.

Olası işlem: Hataya neden olan durumu açıklayın ve kullanıcının URL kalıbını title alanından kaldırmasını önerin. description alanında URL'lere izin verilir.

CourseTopicLimitReached

CourseTopicLimitReached, istenen işlemin bir kurstaki izin verilen maksimum konu sayısını aşacağını gösterir. Bu kod genellikle courses.topics.create() yöntemiyle döndürülür.

Olası işlem: Başarısızlığın nedenini açıklayın ve kullanıcının gereksiz konuları kaldırmasını önerin. Uygulamanız için geçerliyse kullanıcı adına konuları yönetmek üzere courses.topics.delete() yöntemini kullanabilirsiniz.

InactiveCourseOwner

InactiveCourseOwner, kurs sahibinin hesabı silindiği için istenen işlemin gerçekleştirilmesine izin verilmediğini gösterir. Kurs sahibinin yöneticisi, istenen işlemi yapmadan önce kurs sahibinin hesabını geri yüklemelidir.

Olası işlem: Hataya neden olan durumu açıklayın ve yöneticinin işlemi yeniden denemeden önce kurs sahibinin hesabını geri yüklemesini önerin.

IneligibleOwner

IneligibleOwner, kullanıcının yardımcı öğretmen olmadığı için kursun sahibi olarak eklenemeyeceğini gösterir.

Olası işlem: Başarısızlığın nedenini açıklayın. İstekte bulunan kullanıcı yönetici değilse, sahibi güncellemeden önce kullanıcıya kursta öğretmen olması için davetiye göndermesini önerin. İstekte bulunan kullanıcı yöneticiyse kullanıcıyı önce dersin yardımcı öğretmeni olarak eklemesini önerin.

PendingInvitationExists

PendingInvitationExists simgesi, bir kullanıcının kursun sahipliğini almaya davet edildiğini gösterir. Bu hata, kurs sahipliği aktarımı sırasında, daha önce başlatılan ancak yeni sahip tarafından henüz kabul edilmemiş bir aktarım olduğunda meydana gelir.

UserCannotOwnCourse

UserCannotOwnCourse, kullanıcının kursun sahibi olarak eklenemeyeceğini gösterir.

Olası İşlem: Hataya neden olan durumu açıklayın ve kullanıcının ders sahibi olarak ders oluşturulamayacağını belirtin. Yönetici olmayan bir kullanıcı, kendisi dışında bir kullanıcıyı sahip olarak belirleyerek kurs oluşturmaya çalışırsa bu hatayı görebilir. Kullanıcı isteğinde bulunan bir yönetici, sahip olarak belirtilen kullanıcı hesabı yoksa veya kullanıcı kendi alanında değilse bu hatayı görebilir.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached, kullanıcının izin verilen maksimum sayıda grubun üyesi olduğunu ve herhangi bir kursa katılamayacağını gösterir. Bu kod genellikle students.create() veya teachers.create() tarafından döndürülür. Daha fazla bilgi için Sınıfa öğrenci davet etme başlıklı Yardım Merkezi makalesinin "Sınıf boyutu sınırlamaları" bölümüne bakın.

Olası işlem: Başarısızlığın nedenini açıklayın ve kullanıcının katılmadığı kurslardan ayrılmasını önerin. Kullanıcı, daha fazla kursa katılmak istiyorsa ek bir hesap oluşturabilir. Uygulamanız için geçerliyse kullanıcı adına sınıf listelerini yönetmek üzere students.create() veya teachers.delete() kullanabilirsiniz.

HTTP 403: PERMISSION_DENIED

Bir son kullanıcı erişim için ön koşulları karşılamıyorsa tüm Classroom API yöntemleri PERMISSION_DENIED (HTTP 403) hatası döndürebilir. Hataya eşlik eden mesajda, nedeni belirlemenize yardımcı olacak ve kullanıcıları uygun işlemi yapmaya yönlendirecek bir hata mesajı yer alır.

Aşağıdaki bölümlerde, sık karşılaşılan Classroom API hata mesajları açıklanmaktadır.

CannotDirectAddUser

CannotDirectAddUser, kullanıcının kursa doğrudan eklenemeyeceğini gösterir. Bu kod, bir alan yöneticisi bir kullanıcıyı kursa eklemeye çalıştığında ve bu kullanıcının e-posta adresi olmadığında veya kullanıcı alana ait olmadığında gösterilir.

Olası İşlem: Hataya neden olan durumu açıklayın ve alan yöneticisinin, kullanıcı hesabının mevcut olup olmadığını ve kurs yöneticisinin alanında bulunup bulunmadığını kontrol etmesini önerin.

ClassroomApiDisabled

ClassroomApiDisabled, istekte bulunan kullanıcının Classroom API'ye erişimi olmadığını gösterir.

Olası işlem: Kullanıcıyı Classroom veri erişimini etkinleştirme ile ilgili talimatlara yönlendirin. Kullanıcı yanlış hesabı kullanıyor olabileceğinden ClassroomDisabled başlıklı makaleyi de inceleyin.

ClassroomDisabled

ClassroomDisabled, istekte bulunan kullanıcının Classroom'a erişimi olmadığını gösterir.

Olası işlem: Kullanıcıyı Classroom erişimini etkinleştirme ile ilgili talimatlara yönlendirin. Kullanıcı yanlış hesabı da kullanıyor olabilir. Bu nedenle, kullanıcının doğru hesabı seçebilmesi için birden fazla hesap kullanma bağlantısı da sağlayabilirsiniz.

ExpiredAddOnToken

ExpiredAddOnToken, API'ye çağrı yapmak için kullanılan eklenti jetonunun süresinin dolduğunu gösterir.

Olası İşlem: Kullanıcıdan sayfayı yenilemesini veya eklentide tekrar oturum açmasını isteyerek istek URL'sinden yeni addOnToken sorgu parametresini alabilirsiniz.

InvalidAddOnToken

InvalidAddOnToken, bir istekte iletilen eklenti jetonunun ödevde eklenti eki oluşturmaya yetkili olmadığını gösterir.

Olası işlem: Kullanıcı, eklentide Classroom'daki hesaptan farklı bir hesapla oturum açarsa bu hata oluşabilir. Kullanıcıya tarayıcıdaki diğer tüm hesapların oturumunu kapatmasını veya Classroom'u gizli Chrome penceresinde açmasını söyleyin.

ProjectPermissionDenied

ProjectPermissionDenied, isteğin farklı bir Geliştirici Konsolu projesiyle ilişkili bir kaynağı değiştirmeye çalıştığını gösterir.

Olası işlem: Uygulamanızın amaçlanan isteği yapamayacağını belirtin. Yalnızca kaynağı oluşturan OAuth istemci kimliğinin Developer Console projesi tarafından yapılabilir.

UserIneligibleToUpdateGradingPeriodSettings

UserIneligibleToUpdateGradingPeriodSettings, isteğin, istekte bulunan kullanıcının veya kurs sahibinin uygun Google Workspace for Education lisansına sahip olmadığı ya da istekte bulunan kullanıcının kurs öğretmeni veya alan yöneticisi olmadığı bir kursta notlandırma dönemi ayarlarını değiştirmeye çalıştığını gösterir.

Olası işlem: Lisanslama veya kurs rolü durumu nedeniyle uygulamanızın, notlandırma dönemi ayarlarını güncelleme isteğinde bulunamadığını belirtin. Lisanslar Google Yönetici Konsolu'nda atanabilir.

HTTP 429: RESOURCE_EXHAUSTED

Kota veya sunucu kapasitesi gibi bir kaynak tükendiği için istenen işleme izin verilmediğinde RESOURCE_EXHAUSTED döndürülür. Bu tür istek hataları genellikle uygulamanızın aşırı yük oluşturmasından kaynaklanır.

Bu sınırların tetiklenmesini önlemek ve uygulamanızın güvenilirliğini artırmak için yeniden deneme mekanizmalarını kullanın. Geçerli yeniden deneme mekanizmaları şunlardır:

  • İsteği yeniden denemek ve eşzamanlı ortamlarda isteklerin işleme hızını en üst düzeye çıkarmak için kısaltılmış eksponansiyel geri yükleme kullanın.

  • Çakışmaları önlemek için jitter ile kısaltılmış eksponansiyel geri yüklemeyi kullanabilirsiniz. Jitter'ı kullanmak, isteklerdeki ani artışları dağıtan rastgele bir gecikme uygulayarak isteklerinizin daha hızlı tamamlanmasına yardımcı olabilir.

Uygulamanız kota sınırlamaları nedeniyle RESOURCE_EXHAUSTED hataları döndürüyorsa kota artırma isteği gönderin. Daha fazla bilgi için API kotalarını izleme başlıklı Yardım Merkezi makalesini inceleyin.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached, kullanıcının bir günde izin verilen maksimum sayıda kursa katıldığını gösterir. Daha fazla bilgi için Gruplar politikalarını ve sınırlamalarını anlama başlıklı Yardım Merkezi makalesinin "Grup davetleri ve boyutu" bölümünü inceleyin.

Olası işlem: Hataya neden olan durumu açıklayın ve kullanıcının kursa katılmadan önce bir gün beklemesini önerin.

HTTP 500: INTERNAL

INTERNAL, isteği işlerken beklenmeyen bir hata oluştuğunu gösterir. INTERNAL istek hataları da genellikle isteği yeniden denemek için üstel geri çekilme kullanılarak çözülebilir. INTERNAL hatası devam ederse Classroom API Public Issue Tracker'da hata bildirimi göndererek bu hatayı bildirebilirsiniz.