Calendar API iki düzeyde hata bilgisi döndürür:
- Üstbilgideki HTTP hata kodları ve mesajları
- Yanıt gövdesinde, size yardımcı olabilecek ek ayrıntılar içeren bir JSON nesnesi ve hatanın nasıl ele alınacağını belirler.
Bu sayfanın geri kalanında Takvim hataları için referans verilmiştir. Bazı bunları uygulamanızda kullanma konusunda yol gösterici bilgiler edinebilirsiniz.
Eksponansiyel geri yükleme uygulama
İlgili içeriği oluşturmak için kullanılan Cloud APIs belgeleri üstel geri çekilme hakkında iyi bir açıklamaya ve Google Analytics 4'teki API'ler.
Hatalar ve önerilen işlemler
Bu bölümde, listelenen her bir bileşenin tam JSON gösterimi ve bu hatanın üstesinden gelmek için yapabileceğiniz işlemler önerilmiştir.
400: Hatalı İstek
Kullanıcı hatası. Bu, zorunlu bir alan veya parametrenin sağlanmışsa, sağlanan değer geçersiz veya sağlanan alanların kombinasyonu geçersiz.
{
"error": {
"errors": [
{
"domain": "calendar",
"reason": "timeRangeEmpty",
"message": "The specified time range is empty.",
"locationType": "parameter",
"location": "timeMax",
}
],
"code": 400,
"message": "The specified time range is empty."
}
}
Önerilen işlem: Bu kalıcı bir hata olduğundan tekrar denemeyin. Hata mesajını okuyun ve isteğinizi buna göre değiştirin.
401: Geçersiz Kimlik Bilgileri
Geçersiz yetkilendirme üstbilgisi. Kullandığınız erişim jetonunun süresi dolmuş veya jetonu geçersiz.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization",
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
Önerilen işlemler:
- Uzun ömürlü yenileme jetonunu kullanarak yeni bir erişim jetonu alın.
- Bu işlem başarısız olursa kullanıcıyı OAuth akışı üzerinden yönlendirin: OAuth 2.0 ile istekleri yetkilendirme.
- Bunu bir hizmet hesabı için görüyorsanız TV'nizde adımların tümünü başarıyla tamamladık hizmet hesabı sayfası.
403: Kullanıcı Oranı Sınırı Aşıldı
Developer Console'un sınırlarından birine ulaşıldı.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "userRateLimitExceeded",
"message": "User Rate Limit Exceeded"
}
],
"code": 403,
"message": "User Rate Limit Exceeded"
}
}
Önerilen işlemler:
- Uygulamanızın şu en iyi uygulamalara uyduğundan emin olun: kotaları yönetebilirsiniz.
- Developer Console projesinde kullanıcı başına kotayı artırın.
- Bir kullanıcı bir sitenin birçok kullanıcısı adına çok sayıda istek iletiyorsa
Google Workspace hesabınız varsa
alan genelinde yetkiyle bir hizmet hesabı kullanma
quotaUser
parametresini ayarlayın. - Eksponansiyel geri yükleme yöntemini kullanın.
403: Hız Sınırı Aşıldı
Kullanıcı, Google Calendar API'nin takvim başına maksimum istek oranına ulaştı veya kimliği doğrulanmış kullanıcı başına gösterilir.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
Önerilen işlem: rateLimitExceeded
hataları 403 veya 429 hatası döndürebilir
hata kodları (şu anda işlevsel olarak benzerdir ve yanıtlanması gerekir)
Aynı şekilde üstel geri yükleme yöntemini kullanarak.
Ayrıca, uygulamanızın şuralardaki en iyi uygulamalara uyduğundan emin olun:
kotaları yönetebilirsiniz.
403: Takvim kullanım sınırları aşıldı
Kullanıcı, Google'ı korumak için uygulanan Google Takvim sınırlarından birine ulaştı kullanıcıları ve altyapıları kötüye kullanıma karşı korur.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"message": "Calendar usage limits exceeded.",
"reason": "quotaExceeded"
}
],
"code": 403,
"message": "Calendar usage limits exceeded."
}
}
Önerilen işlemler:
- Takvim kullanım sınırları hakkında daha fazla bilgi için Google Workspace Yönetici yardımı.
403: Düzenleyen olmayan kullanıcı için yasak
Etkinlik güncelleme isteği, paylaşılan etkinlik özelliklerinden birini ayarlamaya çalışıyor
başka bir belgeye eklemeniz gerekir. Paylaşılan mülkler (örneğin,
guestsCanInviteOthers
, guestsCanModify
veya guestsCanSeeOtherGuests
) şunları yapabilir:
yalnızca düzenleyen kişi tarafından ayarlanmalıdır.
{
"error": {
"errors": [
{
"domain": "calendar",
"reason": "forbiddenForNonOrganizer",
"message": "Shared properties can only be changed by the organizer of the event."
}
],
"code": 403,
"message": "Shared properties can only be changed by the organizer of the event."
}
}
Önerilen işlemler:
- Events: insert (Etkinlikler: ekle) kullanıyorsanız Etkinlikler: içe aktarma veya Etkinlikler: güncelleme ve isteğinizde paylaşılan herhangi bir mülk varsa bu, onları varsayılan değerlere sahiptir. Etkinlikler: yama'yı kullanabilirsiniz .
- İsteğiniz paylaşılan mülklere sahipse Düzenleyenin kopyasını güncelliyorsanız bu özellikleri değiştirin.
404: Bulunamadı
Belirtilen kaynak bulunamadı. Bu birkaç durumda gerçekleşebilir. Aşağıda bazı örnekler verilmiştir:
- İstenen kaynak (sağlanan kimlikle) hiçbir zaman mevcut olmadığında
Kullanıcının erişemeyeceği bir takvime erişirken
{ "error": { "errors": [ { "domain": "global", "reason": "Bulunamadı", "message": "Bulunamadı" } ], "code": 404, "message": "Bulunamadı" } }
Önerilen işlem: Eksponansiyel geri yükleme kullanın.
409: İstenen tanımlayıcı zaten mevcut
Belirtilen kimliğe sahip bir örnek depolama alanında zaten var.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "duplicate",
"message": "The requested identifier already exists."
}
],
"code": 409,
"message": "The requested identifier already exists."
}
}
Önerilen işlem: Yeni bir örnek oluşturmak istiyorsanız yeni bir kimlik oluşturun. Aksi takdirde update yöntem çağrısı.
409: Çakışma
Bir öğenin toplu haldeki
events.batch
İşlem, istenen diğer cihazla operasyonel çakışma nedeniyle yürütülemiyor
toplu olarak işler.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "conflict",
"message": "Conflict"
}
],
"code": 409,
"message": "Conflict"
}
}
Önerilen işlem: Başarıyla tamamlanan ve kesinlikle tamamlanan tümünü hariç tut
toplu olarak başarısız oldu ve kalanları farklı bir events.batch
içinde tekrar deneyin
veya bunlara karşılık gelen tek etkinlik işlemleri.
410: Gitti
syncToken
veya updatedMin
parametreleri artık geçerli değil. Bu hata ayrıca
İstek, silinmiş bir etkinliği silmeye çalıştığında gerçekleşir.
{
"error": {
"errors": [
{
"domain": "calendar",
"reason": "fullSyncRequired",
"message": "Sync token is no longer valid, a full sync is required.",
"locationType": "parameter",
"location": "syncToken",
}
],
"code": 410,
"message": "Sync token is no longer valid, a full sync is required."
}
}
veya
{
"error": {
"errors": [
{
"domain": "calendar",
"reason": "updatedMinTooLongAgo",
"message": "The requested minimum modification time lies too far in the past.",
"locationType": "parameter",
"location": "updatedMin",
}
],
"code": 410,
"message": "The requested minimum modification time lies too far in the past."
}
}
veya
{
"error": {
"errors": [
{
"domain": "global",
"reason": "deleted",
"message": "Resource has been deleted"
}
],
"code": 410,
"message": "Resource has been deleted"
}
}
Önerilen işlem: syncToken
veya updatedMin
parametreleri için
depolayıp yeniden senkronize edebilirsiniz. Daha fazla bilgi için bkz.
Kaynakları Verimli Şekilde Senkronize Edin.
Silinmiş etkinlikler için başka bir işlem yapmanız gerekmez.
412: Önceden Koşullandırma Başarısız Oldu
If-match üstbilgisinde sağlanan etag artık geçerli kaynağın etag'i.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "conditionNotMet",
"message": "Precondition Failed",
"locationType": "header",
"location": "If-Match",
}
],
"code": 412,
"message": "Precondition Failed"
}
}
Önerilen işlem: Öğeyi yeniden getirin ve değişiklikleri yeniden uygulayın. Ayrıntılı bilgi için Kaynakların belirli sürümlerini alma bölümüne bakın.
429: Çok fazla istek
rateLimitExceeded
hatası, kullanıcı bir öğede çok fazla istek gönderdiğinde
süre tahminidir.
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 429,
"message": "Rate Limit Exceeded"
}
}
Önerilen işlem: rateLimitExceeded
hataları 403 veya 429 hatası döndürebilir
hata kodları (şu anda işlevsel olarak benzerdir ve yanıtlanması gerekir)
Aynı şekilde üstel geri yükleme yöntemini kullanarak.
Ayrıca, uygulamanızın şuralardaki en iyi uygulamalara uyduğundan emin olun:
kotaları yönetebilirsiniz.
500: Arka Uç Hatası
İstek işlenirken beklenmeyen bir hata oluştu.
{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "Backend Error",
}
],
"code": 500,
"message": "Backend Error"
}
}
Önerilen işlem: Eksponansiyel geri yükleme kullanın.