Sorun giderme

En deneyimli geliştiriciler bile kodu ilk denemede nadiren doğru yazar. Bu da sorun gidermeyi geliştirme sürecinin önemli bir parçası haline getirir. İçinde Bu bölümde, projenizin ne durumda olduğunu bulmanıza, anlamanıza ve komut dosyalarınızdaki hataları ayıklayabilir.

Hata mesajları

Komut dosyanız bir hatayla karşılaştığında hata mesajı gösterilir. İletinin yanında, sorun giderme için kullanılan bir satır numarası bulunur. 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 bildirmeden önce, başkalarının bildirmiş olup olmadığını görmek için arama yapın.

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üzenleyici'yi açıp 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 hata genellikle kullanıcının yetkilendirmeden önce tetiklenen tetikleyicilerden kaynaklanır. 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.

Eklentiyi kaldırarak sorunlu eklenti tetikleyicilerini de kaldırabilirsiniz.

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 Drive hizmetini veya Gelişmiş Drive Hizmeti'ni kullanan Apps Script eklentilerini kullanmasını da engeller (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 için yayınlanırsa ve yönetici tarafından alan adındaki kullanıcıların bir kısmı veya tamamı için yüklenirse komut dosyası, alan adında Drive API devre dışı bırakılmış olsa bile bu kullanıcılar için çalışır.

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, tetikleyici işlevlerde eetkinlik parametresinin authMode mülkü olarak gösterilir.

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 aynı anda çok fazla kişinin erişmesi olabilir. 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ık bağımlılığını kaldırın.
  • 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ığın sürümü silindi. Hangi kitaplığın eksik olduğunu kontrol etmek için kitaplık adının yanındaki Diğer > Yeni sekmede aç'ı tıklayın. Eksik kitaplık hata mesajı verir. Güncellemeniz gereken kitaplığı bulduktan sonra aşağıdaki işlemlerden birini yapın:
    • 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.

Hata 400: Gelişmiş hizmetle Google Chat API çağrılırken geçersiz_scope

Error 400: invalid_scope ile birlikte Some requested scopes cannot be shown hata mesajını görüyorsanız Apps Script projesinin appsscript.json dosyasında herhangi bir yetkilendirme kapsamı belirtmemişsiniz demektir. Ç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 çağırmak için aşağıdakileri ekleyin:

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

<URL> adresine UrlFetch çağrıları yöneticiniz tarafından izin verilmiyor

Google Workspace yöneticileri, Yönetici Konsolu'nda izin verilenler listesini etkinleştirebilir erişebileceğiniz tüm harici alanları kontrol etmek için Apps Komut Dosyası.

Hatayı gidermek için yöneticinizle iletişime geçerek URL'yi eklemesini isteyin izin verilenler listesine ekleyebilirsiniz.

Hata ayıklama

Tüm hatalar hata mesajının gösterilmesine neden olmaz. Kodun teknik olarak doğru olduğu ve çalışabildiği ancak sonuçların beklediğiniz gibi olmadığı daha ince bir hata olabilir. 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, komut dosyası projesi yürütülürken bilgileri kaydetmek genellikle yararlıdı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, komut dosyası projenizin oluşturduğu istisna mesajlarını aramanıza ve filtrelemenize olanak tanır.

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

Apps Script, bir komut dosyasını her çalıştırdığınızda Cloud günlükleri dahil olmak üzere yürütmenin kaydını oluşturur. Bu kayıtlar, projenizin komut dosyasının gerçekleştirdiği işlemler.

Komut dosyanızın Apps Komut Dosyası projesindeki çalıştırmalarını görüntülemek için solda Çalıştırmalar tıklayın.

Apps Komut Dosyası hizmet durumunu kontrol etme

Nadir olmakla birlikte, bazen belirli Google Workspace hizmetlerinde (ör. Gmail veya Drive) hizmet kesintilerine neden olabilecek geçici sorunlar yaşanabilir. 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, bir komut dosyasına eklenen bir kesme 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ı, duraklatma noktasını içeren satırı çalıştırmadan önce duraklar ve hata ayıklama bilgilerini içeren bir tablo gösterir. Aşağıdaki gibi verileri incelemek için bu tabloyu kullanabilirsiniz: ve nesnelerde depolanan bilgileri sağlar.

Komut dosyasının nasıl çalıştığını kontrol etmek için hata ayıklayıcı panelinin üst kısmındaki "İçeri adım", "Atla" ve "Dışarı adım" 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ı veya eklentisi açtığınızda çoklu giriş sorunları yaşıyorsanız aşağıdaki çözümlerden birini deneyin:

    • 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çın 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.