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
- HTTP 403:
PERMISSION_DENIED
- HTTP 429:
RESOURCE_EXHAUSTED
- HTTP 500:
INTERNAL
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.