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ırı veya uygulama durumunu (ör. CourseNotModifiable) aştığı için izin verilmeyen bir işlem denediğinde FAILED_PRECONDITION döndürülür. FAILED_PRECONDITION sorununu düzeltmek için kullanıcıya bir işlem yapmasını söyleyin ve ardından tekrar deneyin. Alternatif olarak, bazı durumlarda kullanıcı adına durumu düzeltmek için alternatif uç noktalar 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 Drive dosyası kimlikleri gibi tanımlayıcıları 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ılamayabileceğini gösterir.
Olası işlem: Başarısızlığın nedenini açıklayın ve kurs sahibinin kaldırılmayabileceğ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ı hâlâ 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ıya, 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ılamayabileceğini belirtin. Çoğu durumda, kurs sahibinin kullanıcı hesabı silindiği için kurs geçersiz duruma düşer.
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 Öğrencileri sınıfınıza davet etme başlıklı Yardım Merkezi makalesinin "Sınıf boyutu sınırları" bölümüne bakın.
Olası iş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. Ders durumu, diğer özellikleri değiştiren bir istekte değiştirilebilir.
CourseTeacherLimitReached
CourseTeacherLimitReached, istenen işlemin, izin verilen maksimum kurs eğitmeni 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ı işlem: Hataya neden olan durumu açıklayın ve kullanıcıya 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ği için istenen işleme izin verilmediğini gösterir. URL kalıpları kurs başlıklarında desteklenmez.
Olası İş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ı İş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.
EmptyAssignees
EmptyAssignees, istenen işlemin tüm atananları ilgili çalışma materyalinden kaldıracağını gösterir. Atanan öğrencisi olmayan ödevler desteklenmez.
Olası işlem: Hataya neden olan durumu açıklayın ve kurs sahibinin tüm atananları kaldıramayacağını belirtin.
InactiveCourseOwner
InactiveCourseOwner, kurs sahibinin hesabı silindiği için istenen işleme izin verilmediğini gösterir. Kurs sahibinin hesabının yöneticisi, istenen işlemi yapmadan önce kurs sahibinin hesabını geri yüklemelidir.
Olası İş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 sahibini 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.
ListCoursesStudentAndTeacherFilter
ListCoursesStudentAndTeacherFilter, teacherId ve studentId alanları her ikisi de doldurulmuşken courses.list() isteği gönderilirken oluşur. Tek bir istekte bu alanlardan yalnızca biri ayarlanabilir.
İki ayrı istekte bulunarak belirli öğrenci ve öğretmen kullanıcılarının yer aldığı kursların listesini almaya devam edebilirsiniz. Öncelikle, courses.list() alanının doldurulduğu bir teacherId isteği göndererek öğretmen kullanıcısının kurslarını alın. Ardından, studentId alanının doldurulduğu başka bir courses.list() isteği gönderin.
Her iki kullanıcıyla da eşleşen kursların listesini elde etmek için sonuçların kesişimini hesaplayın.
PendingInvitationExists
PendingInvitationExists, birinin 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 oluşur.
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şturamayacağı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: Hataya neden olan durumu 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şturmayı düşünebilir. Uygulamanız için geçerliyse kullanıcı adına sınıf listelerini yönetmek için 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 ve kullanıcıları uygun işlemi yapmaya yönlendirmenize yardımcı olacak 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 kursa kullanıcı 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ı işlem: Hataya neden olan durumu açıklayın ve alan yöneticisinden kullanıcı hesabının mevcut olup olmadığını ve kurs yöneticisinin alanında bulunup bulunmadığını kontrol etmesini isteyin.
CannotInviteUserInUntrustedDomain
CannotInviteUserInUntrustedDomain, davet edilen veya oluşturulan kullanıcının, arayan kullanıcıyla aynı alanda olmadığını ya da arayan kullanıcının güvenilir alanında olmadığını gösterir. Google Workspace for Education Fundamentals lisansı olan arayanlar için, alana ait olmayan ve güvenilmeyen kullanıcılar doğrudan eklenemez veya kursa davet edilemez.
Olası İşlem: Hataya neden olan durumu açıklayın ve arayan kişiye aşağıdaki seçeneklerden birini değerlendirmesini önerin:
- Hem arayan hem de aranan kullanıcıların alanlarını birbirlerinin güvenilir alanlar listesine ekleyip tekrar deneyin.
- Arayanın kurs daveti bağlantısını veya sınıf kodunu manuel olarak paylaşmasını önerin. Bunun için yöneticinin alan dışı davetleri yapılandırması gerektiğini unutmayın. Daha fazla bilgi edinmek için Sınıfınıza öğrenci davet etme başlıklı makaleye göz atın.
- Sınırlama yalnızca Fundamentals lisansı için geçerli olduğundan, arayan kullanıcının ücretli Google Workspace for Education lisansına yükseltme yapmasını ö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 verilerine erişimi 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ı iş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 Play Console projesiyle ilişkili bir kaynağı değiştirmeye çalıştığını gösterir.
Olası işlem: Uygulamanızın, istenen isteği yapamadığı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üncellemek için istenen isteği yapamayacağı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, istek işlenirken 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 genel sorun izleyicisinde hata bildirimi göndererek bu durumu bildirebilirsiniz.