Sorun giderme

En deneyimli geliştirici bile ilk sayfada nadiren kodu doğru yazar. ve sorun gidermeyi geliştirme sürecinin önemli bir parçası haline getirdik. İçinde Bu bölümde ise bulmanıza, anlamanıza ve hedeflerinize ulaşmanıza yardımcı olabilecek bazı teknikleri ele alacağız. komut dosyalarınızdaki hataları ayıklayabilir.

Hata mesajları

Komut dosyanız bir hatayla karşılaştığında bir hata mesajı gösterilir. Mesaj ifadesi, sorun giderme için kullanılan bir satır numarasıyla birlikte gösterilir. Paydaşların yönetiminde söz dizimi hataları ve çalışma zamanı hataları gibi diğer hata türlerini de ayrı ayrı görebilirsiniz.

Söz dizimi hataları

Söz dizimi hataları, JavaScript'e uygun olmayan kodun yazılmasından kaynaklanır ve hatalar, komut dosyasını kaydetmeye çalıştığınızda algılanır. Örneğin, aşağıdaki kod snippet'i bir söz dizimi hatası içeriyor:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('john@example.com',
                    'Data in row ' + rowNumber,
                    rowData);
}

Buradaki söz dizimi sorunu, dördüncü) satırında görünür. Komut dosyasını kaydetmeye çalıştığınızda aşağıdaki hatayı alırsınız:

Bağımsız değişken listesinden sonra ) yok. (4. satır)

Bu tür hataların giderilmesi genellikle basittir çünkü bu tür hatalar ve genellikle basit nedenleri vardır. Bir öğeyi veya söz dizimi hataları içeren bir dosyadır (yani yalnızca geçerli kod akılda kalıcı bir yolunu sunar.

Çalışma zamanı hataları

Bu hatalar, bir işlevin veya sınıfın yanlış kullanılmasından kaynaklanır ve yalnızca algılanır. Örneğin, aşağıdaki kod bir çalışma zamanı hatasına neden olur:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

Kod doğru şekilde biçimlendirildi, ancak "can" değerini geçiriyoruz - MailApp.sendEmail aranırken e-posta adresi. Bu geçerli e-posta adresi. Komut dosyası çalıştırılırken şu hata verilir:

Geçersiz e-posta: can (5. satır)

Bu hataların giderilmesini daha zor kılan şey, çoğunlukla verilerin koda yazılmamış, ancak geri çekilmiş bir fonksiyona e-tablodan, formdan veya başka bir harici veri kaynağından Hata ayıklamayı kullanma aşağıdaki teknikler, bu hataların nedenini belirlemenize yardımcı olabilir.

Yaygın görülen hatalar

Aşağıda, sık karşılaşılan hatalar ve nedenleri listelenmiştir.

Hizmet çok fazla kez başlatıldı: <işlem adı>

Bu hata, belirli bir işlem için günlük kotanızı aştığınızı gösterir. Örneğin, tek bir seferde çok sayıda e-posta gönderirseniz bu hatayla karşılaşabilirsiniz işlem yapacaktır. Kotalar, tüketici, alan adı ve birincil hesapları olabilir ve bunlar, daha önce Google'dan duyurulmuştur. Çeşitli işlemlerin kota sınırlarını Apps Komut Dosyası kota dokümanları.

Sunucu kullanılamıyor. veya Sunucu hatası oluştu, lütfen tekrar deneyin.

Bu hataların birkaç olası nedeni vardır:

  • Bir Google sunucusu veya sistemi geçici olarak kullanılamıyor. Lütfen bekleyin komut dosyasını çalıştırmayı tekrar deneyin.
  • Komut dosyanızda, buna karşılık gelen bir hata içermeyen bir hata var mesajını alırsınız. Komut dosyanızda hata ayıklamayı deneyin ve sorunu tespit edip edemeyeceğinize bakın.
  • Google Apps Komut Dosyası'ndaki bir hata bu hataya neden oluyor. Örneğin, hata raporlarını arama ve doldurmayla ilgili talimatlar için Hatalar. Yeni bir hata oluşturmadan önce, şunu arayın: olup olmadığını kontrol edin.

Bu işlemi gerçekleştirmek için yetkilendirme gerekiyor.

Bu hata, komut dosyasında çalışmak için gereken yetkilendirmenin olmadığını gösterir. Bir komut dosyası, Komut Dosyası Düzenleyicisi'nde veya özel menü öğesinden çalıştırıldığında kullanıcıya yetkilendirme iletişim kutusu gösterilir. Ancak bir komut dosyası çalıştırıldığında Google Sites sayfasına yerleştirilmiş veya hizmet olarak çalıştırılan bir tetikleyiciden iletişim kutusu gösterilemiyor ve bu hata gösteriliyor.

Komut dosyasını yetkilendirmek için Komut Dosyası Düzenleyicisi'ni açın ve herhangi bir işlevi çalıştırın. İlgili içeriği oluşturmak için kullanılan komut dosyası projesini yetkilendirebilmeniz için yetkilendirme istemi görünür. Öğe komut dosyası yeni yetkisiz hizmetler içeriyorsa komut dosyasını yeniden yetkilendirmeniz gerekir.

Bu hatanın nedeni genellikle Tetikleyici kullanıcı onları yetkilendirdi. Komut dosyası projesine erişiminiz yoksa (hata, kullandığınız eklentiyle kullanıyorsanız, komut dosyasını genellikle tekrar. Bir tetikleyici etkinleşmeye devam ederek bu hataya neden oluyorsa aşağıdakileri yapabilirsiniz:

  1. Apps Komut Dosyası projesinin solundaki Tetikleyiciler'i tıklayın.
  2. Kaldırmak istediğiniz tetikleyicinin sağında Diğer'i tıklayın. &gt; Tetikleyiciyi sil.

Sorunlu eklenti tetikleyicilerini şu şekilde de kaldırabilirsiniz: eklentiyi kaldırmanız gerekir.

Erişim reddedildi: DriveApp veya Alan politikası, üçüncü taraf Drive uygulamalarını devre dışı bıraktı

Alanların Google Workspace yöneticileri, devre dışı bırakma olanağı Alan adları için geçerli olan Drive API, kullanıcılarının yükleme ve kullanma hakkında bilgi edinebilirsiniz. Bu ayar, kullanıcıların eklentilerini kullanan Apps Komut Dosyası eklentilerini Drive hizmeti veya Gelişmiş Drive Hizmeti (komut dosyası, yönetici Drive API'yi devre dışı bırakmadan önce yetkilendirilmiş olsa bile).

Ancak, Drive hizmetini kullanan bir eklenti veya web uygulaması alan genelinde yükleme ve alan adındaki kullanıcıların bir kısmı ya da tamamı için yönetici tarafından yüklendiğinde, Drive API'sı alan.

Komut dosyasının etkin kullanıcının kimliğini alma izni yok.

Etkin kullanıcının kimliğinin ve e-postasının komut dosyası. Bu uyarı, Session.getActiveUser(). Bu işlem, Session.getEffectiveUser() komut dosyası farklı bir yetkilendirme modunda çalışıyorsa AuthMode.FULL. Bu uyarının sinyalini görüyorsanız, bu uyarının User.getEmail() yalnızca "" değerini döndürür.

Durumunuza bağlı olarak, bu uyarıyla ilgili sorunları gidermenin çeşitli yolları vardır. yetkilendirme moduna girer. Yetkilendirme modu tetiklenen işlevlerde e öğesinin authMode özelliği etkinlik parametresi.

Kitaplık eksik

Komut dosyanıza popüler bir kitaplık eklerseniz bir hata mesajıyla karşılaşabilirsiniz yardımcı olması, kitaplığın eksik olduğunu belirten bir oluşturun. Bunun nedeni, kitaplığa çok fazla kişinin erişiyor olması olabilir ile aynı anda oynatabilirsiniz. Bu hatadan kaçınmak için aşağıdaki çözümlerden birini deneyin:

  • Kitaplığın kodunu kopyalayıp komut dosyanıza yapıştırın ve kitaplığı kaldırın desteklenmektedir.
  • Kitaplık komut dosyasını kopyalayın ve hesabınızdan kitaplık olarak dağıtın. Emin olun orijinal komut dosyanızdaki bağımlılığı yeni kitaplığa güncelleyin e-posta alırsınız.

Kitaplık sürümü veya dağıtım sürümü eksik olduğundan hata oluştu. Hata kodu Not_Found

Bu hata mesajı, aşağıdakilerden birini gösterir:

  • Komut dosyasının dağıtılan sürümü silindi. Dağıtılan öğeleri güncellemek için daha fazla bilgi edinmek için Sürümü dağıtım.
  • Komut dosyasının kullandığı kitaplık sürümü silindi. Hangisinin kitaplık eksik, kitaplık adının yanındaki Diğer &gt; Yeni sekmede aç'ı tıklayın. Eksik kitaplık hata mesajı verir. Güncellemeniz gereken kitaplığı bulduktan sonra aşağıdaki işlemlerden biri:
    • Farklı bir sürüm kullanmak için kitaplığı güncelleyin. Daha fazla bilgi için kitaplığı'nda bulabilirsiniz.
    • Silinen kitaplığı komut dosyası projenizden ve kodunuzdan kaldırın. Görüntüleyin Kitaplığı kaldırma.
  • Komut dosyanızın kullandığı bir kitaplığın komut dosyası, başka bir kitaplık kitaplığının silinmiş bir sürümünü kullanıyor. Aşağıdaki işlemlerden birini yapın:
    • Komut dosyanızın kullandığı kitaplığa düzenleme erişiminiz varsa ikincil kitaplığını mevcut bir sürüme otomatik olarak ekleyebilirsiniz.
    • Farklı bir sürüm kullanmak için kitaplığı güncelleyin. Daha fazla bilgi için kitaplığı'nda bulabilirsiniz.
    • Kitaplığı, komut dosyası projenizden ve kodunuzdan kaldırın. Görüntüleyin Kitaplığı kaldırma.

Google Chat API'yi gelişmiş hizmetle çağırırken Error 400: invalid_scope

Hata mesajında Error 400: invalid_scope ile karşılaşırsanız Some requested scopes cannot be shown, Bu, Apps Komut Dosyası projesinin appsscript.json dosyası. Çoğu durumda Apps Komut Dosyası, bir komut dosyasının hangi kapsamlara ihtiyacı olduğunu, ancak Chat'in gelişmiş hizmetini kullandığınızda yetkilendirme kapsamlarının tamamını değil, Apps Komut Dosyası projesinin manifest dosyasına. Görüntüleyin Açık kapsamlar ayarlama.

Hatayı gidermek için uygun yetkilendirme kapsamlarını ekleyin Apps Komut Dosyası projesinin appsscript.json dosyasına oauthScopes dizisidir. Örneğin, spaces.messages.create yöntemini kullanıyorsanız aşağıdaki kodu ekleyin:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Hata ayıklama

Tüm hatalar hata mesajı gösterilmesine neden olmaz. Daha fazla küçük bir hata oluştu. Bu hata, kodun teknik olarak doğru olduğu ve yürütülebileceği sonuçlar beklediğiniz gibi değildir. Bu tür dosyaları yönetmek için ve belirlediğiniz gibi çalışmayan bir komut dosyasını inceleyerek görebilirsiniz.

Günlük Kaydı

Hata ayıklama sırasında bilgileri bir komut dosyası projesi olarak kaydetmek genellikle yürütülür. Google Apps Komut Dosyası'nda bilgileri günlüğe kaydetmek için iki yöntem bulunur: Bulut günlük kaydı hizmeti ve daha temel Logger ve konsol hizmetleri özellikleri Apps Komut Dosyası düzenleyicisinde yerleşik olarak bulunan özellikleri keşfedin.

Daha fazla ayrıntı için Günlük kaydı kılavuzunu inceleyin.

Error Reporting

Çalışma zamanı hataları nedeniyle oluşan istisnalar otomatik olarak Google Cloud Hata Bildirimi hizmeti kullanılarak kaydedilir. Bu hizmet şunları yapmanıza olanak tanır: komut dosyası projenizin oluşturduğu istisna mesajlarını arayın ve filtreleyin.

Hata Bildirimi'ne erişmek için Google Cloud günlüklerini ve hata raporlarını şurada görüntüleme: Google Cloud Platform Console'da oturum açın.

Yürütmeler

Her komut dosyası çalıştırdığınızda, Apps Komut Dosyası yürütmenin bir kaydını tutar, Cloud günlükleri dahil. Bu kayıtlar, projenizin komut dosyasının gerçekleştirdiği işlemler.

Komut dosyanızın yürütme işlemlerini Apps Komut Dosyası projesinde, sol taraftaki Yürütme işlemleri'ni tıklayın. .

Apps Komut Dosyası hizmet durumunu kontrol etme

Nadiren de olsa bazı durumlarda spesifik Google Workspace hizmetler (ör. Gmail veya Drive) hizmet kesintilerine yol açabilecek geçici sorunlarla karşılaşmaz. Bu söz konusu hizmetlerle etkileşime giren Apps Komut Dosyası projeleri çalışmayabilir. olması gerekir.

Google Workspace hizmeti olup olmadığını kontrol edebilirsiniz. kesintilerini önlemek için Google Workspace Durum Kontrol Paneli. Kesinti bir sorun varsa sorunun çözülmesini beklersiniz ya da çözüm için şurada daha fazla yardım alabilirsiniz: Google Workspace Yardım Merkezi veya Google Workspace ile İlgili Bilinen Sorunlar belgelerinden faydalanabilirsiniz.

Hata ayıklayıcıyı ve kesme noktalarını kullanma

Komut dosyanızdaki sorunları bulmak için dosyayı hata ayıklama modunda çalıştırabilirsiniz. Çalıştırıldığında hata ayıklama modundaysanız komut dosyası, kestiğiniz bir satır olan bir kesme noktasına, komut dosyanızda sorun olabileceğini düşündüğünüz bir maddeyi görebilirsiniz. Komut dosyası duraklattığında her bir değişkenin o andaki değerini hesaplayabilir. Böylece, iç işleyişini öğretir.

Ayrılma noktası ekle

Ayrılma noktası eklemek için fareyle bir değere sahip. Satır numarasının solundaki daireyi tıklayın. Aşağıdaki resimde, komut dosyasına eklenen bir ayrılma noktası örneği gösterilmektedir:

Ayrılma noktası ekle

Hata ayıklama modunda komut dosyası çalıştırma

Komut dosyasını hata ayıklama modunda çalıştırmak için düzenleyicinin üst kısmında Hata ayıkla'yı tıklayın.

Komut dosyası, kesme noktası içeren satırı çalıştırmadan önce duraklatır ve hata ayıklama bilgileri tablosu. Aşağıdaki gibi verileri incelemek için bu tabloyu kullanabilirsiniz: ve nesnelerde depolanan bilgileri sağlar.

Komut dosyasının çalışma şeklini kontrol etmek için Hata Ayıklayıcı panelinin üst kısmında "Beraber atlatın", "Başka bir şeye geç" ve düğmelerini kullanın. Bunlar, reklamlarınızı her seferinde bir satır komut dosyasıyla kontrol edin ve değerlerin zaman içinde nasıl değiştiğini inceleyin.

Birden çok Google Hesabı ile ilgili sorunlar

Aynı anda birden fazla Google Hesabı'na giriş yaptıysanız eklentilerinize ve web uygulamalarınıza erişmekte sorun yaşıyorsanız. Çoklu giriş veya aynı anda birden çok Google Hesabı'na giriş yapılması, Google Apps için desteklenmez. Komut dosyası, eklentiler veya web uygulamaları.

  • Birden fazla hesaba giriş yapmışken Apps Komut Dosyası düzenleyicisini açarsanız Google istemleri devam etmek istediğiniz hesabı seçmeniz gerekir.

  • Bir web uygulamasını veya eklentiyi açtığınızda çoklu giriş sorunlarıyla karşılaşıyorsanız aşağıdakilerden birini deneyin: şu çözümleri uygulayabilirsiniz:

    • Tüm Google Hesaplarınızdan çıkış yapın ve yalnızca web uygulaması veya eklenti yüklemeniz gerekebilir.
    • Google Chrome'da gizli pencere veya eşdeğer bir gizli tarama açma pencere açın ve yüklediğiniz eklentinin veya web uygulamasının bulunduğu Google Hesabı'na bazı işaretler bulabilirsiniz.

Yardım alma

Yukarıda listelenen araçları ve teknikleri kullanarak bir sorundaki hataları ayıklamak, ancak karşılaştığınız bazı sorunlar da olabilir. yardımcı olacak kaynaklar hazırladık. Şu konular için Destek sayfamıza göz atın: nerede soru sorulacağı ve hata bildirileceği hakkında bilgi.