Không tìm thấy trang tập lệnh ứng dụng google sheet

Bắt đầu

Hướng dẫn và hướng dẫn để đưa bạn từ viết tập lệnh đầu tiên đến xây dựng ứng dụng của bạn

Tìm hiểu thêm »

Tập lệnh mẫu

Từ các công cụ năng suất đến tự động hóa doanh nghiệp, hãy xem những gì bạn có thể xây dựng với Google Apps Script

Tìm hiểu thêm »

Tài liệu tham khảo dành cho nhà phát triển

Hoàn thành tài liệu với mọi thứ bạn cần biết khi xây dựng bằng Google Apps Script

Tìm hiểu thêm »

Bạn đã triển khai mã Google Apps Script của mình dưới dạng Ứng dụng web. Tuy nhiên, khi bạn mở URL của ứng dụng web, nó sẽ trả về lỗi 404

Không tìm thấy trang tập lệnh ứng dụng google sheet

Khi bạn triển khai tập lệnh của mình dưới dạng Ứng dụng web, bạn sẽ nhận được một URL như sau

https. //script. Google. com/macro/s/AKfycbzeIVAZxmaJreUILd3Ub7wrLj_a7xlYDOB3MU66vNPter-S1t0/exec

Đôi khi URL sẽ chứa /u/1/. Nếu bạn thấy điều này trong URL, vui lòng xóa nó

Tiếp theo, nếu bạn đã triển khai tập lệnh từ bên trong miền G Suite. Vui lòng thêm /a/ ngay sau https://script.google.com

https. //script. Google. com/a/ví dụ. com/macro/s/AKfycbzeIVAZxmaJreUILd3Ub7wrLj_a7xlYDOB3MU66vNPter-S1t0/exec

🛈 Vui lòng thay ví dụ. com trong URL trên với tên miền G Suite của bạn

Bây giờ, hãy thử mở URL trong trình duyệt của bạn. Ứng dụng web của bạn sẽ không còn trả về lỗi 404 nữa và bạn sẽ có thể thấy đầu ra do ứng dụng web của mình tạo ra

Không tìm thấy trang tập lệnh ứng dụng google sheet

Ở lại đến ngày

Theo dõi tôi qua email để nhận các mẹo hữu ích và nội dung độc quyền khác. Tôi cũng sẽ gửi cho bạn thông báo khi tôi xuất bản nội dung mới

Bằng cách đăng ký, bạn đồng ý với Chính sách quyền riêng tư & Điều khoản


Tôi đánh giá cao bất kỳ phản hồi nào bạn có thể cung cấp cho tôi về bài đăng này

Nó có hữu ích không? . Cảm ơn bạn rất nhiều

Ngay cả nhà phát triển có kinh nghiệm nhất cũng hiếm khi viết mã chính xác trong lần thử đầu tiên, khiến việc khắc phục sự cố trở thành một phần quan trọng của quy trình phát triển. Trong phần này, chúng tôi sẽ đề cập đến một số kỹ thuật có thể giúp bạn tìm, hiểu và gỡ lỗi trong tập lệnh của mình

Thông báo lỗi

Khi tập lệnh của bạn gặp lỗi, thông báo lỗi sẽ hiển thị. Thông báo được kèm theo một số dòng được sử dụng để khắc phục sự cố. Có hai loại lỗi cơ bản được hiển thị theo cách này. lỗi cú pháp và lỗi thời gian chạy

Lỗi cú pháp

Lỗi cú pháp là do viết mã không tuân theo ngữ pháp JavaScript và các lỗi này được phát hiện ngay khi bạn cố lưu tập lệnh. Ví dụ: đoạn mã sau chứa lỗi cú pháp

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

Vấn đề cú pháp ở đây là thiếu ký tự ) ở cuối dòng thứ tư. Khi bạn cố lưu tập lệnh, bạn sẽ gặp lỗi sau

Thiếu ) sau danh sách đối số. (dòng 4)

Các loại lỗi này thường dễ khắc phục sự cố vì chúng được phát hiện ngay lập tức và thường có nguyên nhân đơn giản. Bạn không thể lưu tệp chứa lỗi cú pháp, nghĩa là chỉ có mã hợp lệ được lưu vào dự án của bạn

lỗi thời gian chạy

Các lỗi này là do sử dụng hàm hoặc lớp không chính xác và chỉ có thể được phát hiện sau khi tập lệnh đã được chạy. Ví dụ: đoạn mã sau gây ra lỗi thời gian chạy

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);
}

Mã được định dạng chính xác, nhưng chúng tôi đang chuyển giá trị "john" cho địa chỉ email khi gọi MailApp.sendEmail. Vì đây không phải là một địa chỉ email hợp lệ, lỗi sau được đưa ra khi chạy tập lệnh

Email không hợp lệ. John (dòng 5)

Điều khiến việc khắc phục sự cố các lỗi này trở nên khó khăn hơn là dữ liệu bạn đang chuyển vào một hàm thường không được ghi trong mã mà thay vào đó được lấy từ bảng tính, biểu mẫu hoặc nguồn dữ liệu ngoài khác. Sử dụng các kỹ thuật sửa lỗi bên dưới có thể giúp bạn xác định nguyên nhân của những lỗi này

Lỗi thông thường

Dưới đây là danh sách các lỗi phổ biến và nguyên nhân của chúng

Service invoked too many times:

Lỗi này cho biết rằng bạn đã vượt quá hạn ngạch hàng ngày cho một hành động nhất định. Ví dụ: bạn có thể gặp phải lỗi này nếu gửi quá nhiều email trong một ngày. Hạn ngạch được đặt ở các cấp độ khác nhau cho tài khoản người tiêu dùng, miền và tài khoản cao cấp và có thể thay đổi bất kỳ lúc nào mà không có thông báo trước của Google. Bạn có thể xem giới hạn hạn mức cho các hành động khác nhau trong tài liệu hạn ngạch Apps Script

Máy chủ không khả dụng. hoặc đã xảy ra lỗi Máy chủ, vui lòng thử lại

Có một vài nguyên nhân có thể gây ra những lỗi này

  • Máy chủ hoặc hệ thống của Google tạm thời không khả dụng. Đợi một lúc và thử chạy lại tập lệnh
  • Có lỗi trong tập lệnh của bạn không có thông báo lỗi tương ứng. Hãy thử gỡ lỗi tập lệnh của bạn và xem liệu bạn có thể cô lập vấn đề không
  • Có lỗi trong Google Apps Script gây ra lỗi này. Để biết hướng dẫn về cách tìm kiếm và gửi báo cáo lỗi, hãy xem phần Lỗi. Trước khi gửi một lỗi mới, hãy tìm kiếm xem những người khác đã báo cáo chưa

Cần có ủy quyền để thực hiện hành động đó

Lỗi này cho biết tập lệnh thiếu quyền cần thiết để chạy. Khi tập lệnh được chạy trong Trình chỉnh sửa tập lệnh hoặc từ một mục menu tùy chỉnh, hộp thoại ủy quyền sẽ hiển thị cho người dùng. Tuy nhiên, khi tập lệnh được chạy từ trình kích hoạt, được nhúng với trang Google Sites hoặc chạy dưới dạng dịch vụ, hộp thoại không thể hiển thị và lỗi này sẽ hiển thị

Để ủy quyền cho tập lệnh, hãy mở Trình chỉnh sửa tập lệnh và chạy bất kỳ chức năng nào. Lời nhắc ủy quyền xuất hiện để bạn có thể ủy quyền cho dự án tập lệnh. Nếu tập lệnh chứa các dịch vụ trái phép mới, bạn phải ủy quyền lại tập lệnh

Lỗi này thường do trình kích hoạt kích hoạt trước khi người dùng cấp quyền cho chúng. Nếu bạn không có quyền truy cập vào dự án tập lệnh (ví dụ: vì lỗi xảy ra đối với tiện ích bổ sung mà bạn sử dụng), bạn thường có thể ủy quyền cho tập lệnh bằng cách sử dụng lại tiện ích bổ sung. Nếu trình kích hoạt tiếp tục kích hoạt và gây ra lỗi này, bạn có thể xóa trình kích hoạt của mình bằng cách thực hiện như sau

  1. Ở bên trái dự án Apps Script, hãy nhấp vào Kích hoạt cảnh báo .
  2. Ở bên phải trình kích hoạt bạn muốn xóa, hãy nhấp vào Thêm more_vert > Xóa trình kích hoạt.

Bạn cũng có thể xóa trình kích hoạt tiện ích bổ sung có vấn đề bằng cách gỡ cài đặt tiện ích bổ sung

Truy cập bị từ chối. DriveApp hoặc Chính sách miền đã vô hiệu hóa các ứng dụng Drive của bên thứ ba

Quản trị viên của các miền Google Workspace có thể tắt SDK Drive cho miền của họ. Điều này ngăn người dùng của họ cài đặt và sử dụng ứng dụng Google Drive. Cài đặt này cũng ngăn người dùng không thể sử dụng các tiện ích bổ sung Apps Script sử dụng dịch vụ Drive hoặc Dịch vụ Drive nâng cao (ngay cả khi tập lệnh đã được ủy quyền trước khi quản trị viên tắt SDK Drive)

Tuy nhiên, nếu một tiện ích bổ sung hoặc ứng dụng web sử dụng dịch vụ Drive được xuất bản để cài đặt trên toàn miền và được quản trị viên cài đặt cho một số hoặc tất cả người dùng trong miền, tập lệnh sẽ hoạt động cho những người dùng đó ngay cả khi SDK Drive bị tắt trong

Tập lệnh không có quyền lấy danh tính của người dùng đang hoạt động

Cho biết rằng tập lệnh không có danh tính và email của người dùng đang hoạt động. Cảnh báo này là kết quả của một cuộc gọi đến Session.getActiveUser(). Nó cũng có thể là kết quả của một cuộc gọi tới Session.getEffectiveUser() nếu tập lệnh đang chạy ở chế độ ủy quyền khác với

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);
}
0. Nếu cảnh báo này được báo hiệu, các cuộc gọi tiếp theo tới
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);
}
1 chỉ trả về ""

Có một số cách để khắc phục sự cố cảnh báo này, tùy thuộc vào chế độ ủy quyền mà tập lệnh đang chạy trong đó. Chế độ ủy quyền được hiển thị trong các chức năng được kích hoạt dưới dạng thuộc tính

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);
}
2 của tham số sự kiện
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);
}
3

  • Trong
    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);
    }
    
    0, hãy cân nhắc sử dụng Session.getEffectiveUser() để thay thế
  • Trong
    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);
    }
    
    2, đảm bảo rằng chủ sở hữu đã ủy quyền tập lệnh
  • Trong các chế độ ủy quyền khác, tránh gọi một trong hai phương thức
  • Nếu bạn là khách hàng của Google Workspace, mới nhận được cảnh báo này từ một trình kích hoạt có thể cài đặt, hãy đảm bảo rằng trình kích hoạt đó đang chạy với tư cách người dùng trong tổ chức của bạn

Thư viện bị thiếu

Nếu bạn thêm một thư viện phổ biến vào tập lệnh của mình, bạn có thể nhận được thông báo lỗi cho biết rằng thư viện đó bị thiếu, ngay cả khi thư viện được liệt kê là phần phụ thuộc cho tập lệnh của bạn. Lý do có thể là có quá nhiều người truy cập thư viện cùng một lúc. Để tránh lỗi này, hãy thử một trong các giải pháp sau

  • Sao chép và dán mã của thư viện vào tập lệnh của bạn và xóa phần phụ thuộc của thư viện
  • Sao chép tập lệnh thư viện và triển khai tập lệnh dưới dạng thư viện từ tài khoản của bạn. Đảm bảo cập nhật phần phụ thuộc trong tập lệnh gốc của bạn lên thư viện mới thay vì tập lệnh công khai

gỡ lỗi

Không phải tất cả các lỗi đều gây ra thông báo lỗi được hiển thị. Có thể có một lỗi tinh vi hơn trong đó mã đúng về mặt kỹ thuật và có thể thực thi, nhưng kết quả không như bạn mong đợi. Dưới đây là một số chiến lược để xử lý các tình huống như vậy và điều tra thêm về tập lệnh không chạy theo cách bạn mong đợi

ghi nhật ký

Trong khi gỡ lỗi, việc ghi lại thông tin khi dự án tập lệnh thực thi thường hữu ích. Google Apps Script có hai phương pháp để ghi thông tin. dịch vụ ghi nhật ký trên Đám mây cũng như các dịch vụ Bảng điều khiển và Logger cơ bản hơn được tích hợp trong trình chỉnh sửa Apps Script

Xem hướng dẫn Ghi nhật ký để biết thêm chi tiết

Báo cáo lỗi

Ghi chú. Để sử dụng Báo cáo lỗi trong Google Cloud Platform, dự án Apps Script của bạn phải sử dụng dự án GCP tiêu chuẩn, do người dùng quản lý thay vì dự án GCP do Apps Script quản lý mặc định.

Các trường hợp ngoại lệ xảy ra do lỗi thời gian chạy sẽ tự động được ghi lại bằng dịch vụ Báo cáo lỗi của Google Cloud. Dịch vụ này cho phép bạn tìm kiếm và lọc các thông báo ngoại lệ mà dự án tập lệnh của bạn tạo ra

Để truy cập Báo cáo lỗi, hãy xem Xem nhật ký đám mây và báo cáo lỗi trong bảng điều khiển Google Cloud Platform

hành quyết

Mỗi khi bạn chạy một tập lệnh, Apps Script sẽ tạo một bản ghi về quá trình thực thi, bao gồm cả Nhật ký đám mây. Những bản ghi này có thể giúp bạn hiểu những hành động mà tập lệnh của bạn đã thực hiện

Để xem quá trình thực thi tập lệnh của bạn trong dự án Apps Script, ở bên trái, hãy nhấp vào Thực thi playlist_play .

Kiểm tra trạng thái dịch vụ Apps Script

Mặc dù hiếm gặp nhưng đôi khi các dịch vụ cụ thể của Google Workspace (chẳng hạn như Gmail hoặc Drive) gặp sự cố tạm thời có thể dẫn đến ngừng hoạt động dịch vụ. Khi điều này xảy ra, các dự án Apps Script tương tác với các dịch vụ này có thể không hoạt động như mong đợi

Bạn có thể kiểm tra xem có sự cố ngừng dịch vụ Google Workspace hay không bằng cách xem Trang tổng quan trạng thái Google Workspace. Nếu hiện đang gặp sự cố ngừng hoạt động, bạn có thể đợi sự cố được khắc phục hoặc tìm kiếm thêm trợ giúp trong Trung tâm trợ giúp của Google Workspace hoặc tài liệu Sự cố đã biết của Google Workspace

Sử dụng trình gỡ lỗi và điểm dừng

Để xác định các vấn đề trong tập lệnh của bạn, bạn có thể chạy nó ở chế độ gỡ lỗi. Khi chạy ở chế độ gỡ lỗi, một tập lệnh sẽ tạm dừng khi nó chạm đến một điểm ngắt, đó là một dòng mà bạn đã đánh dấu trong tập lệnh của mình mà bạn cho rằng có thể có sự cố. Khi tập lệnh tạm dừng, tập lệnh sẽ hiển thị giá trị của từng biến tại thời điểm đó, cho phép bạn kiểm tra hoạt động bên trong của tập lệnh mà không phải thêm nhiều câu lệnh ghi nhật ký

Thêm một điểm dừng

Để thêm điểm ngắt, hãy di chuột qua số dòng của dòng bạn muốn thêm điểm ngắt. Ở bên trái của số dòng, nhấp vào vòng tròn. Hình ảnh bên dưới hiển thị ví dụ về điểm ngắt được thêm vào tập lệnh

Không tìm thấy trang tập lệnh ứng dụng google sheet

Chạy tập lệnh ở chế độ gỡ lỗi

Để chạy tập lệnh ở chế độ gỡ lỗi, ở đầu trình chỉnh sửa, hãy nhấp vào Gỡ lỗi

Trước khi tập lệnh chạy dòng có điểm dừng, tập lệnh sẽ tạm dừng và hiển thị bảng thông tin gỡ lỗi. Bạn có thể sử dụng bảng này để kiểm tra dữ liệu như giá trị của các tham số và thông tin được lưu trữ trong các đối tượng

Để kiểm soát cách chạy tập lệnh, ở đầu bảng Trình gỡ lỗi, hãy sử dụng các nút "Bước vào", "Bước qua" và "Bước ra". Những thứ này cho phép bạn chạy từng dòng một tập lệnh và kiểm tra xem các giá trị thay đổi như thế nào theo thời gian

Sự cố với nhiều Tài khoản Google

Nếu đăng nhập vào nhiều Tài khoản Google cùng lúc, bạn có thể gặp sự cố khi truy cập các dự án Apps Script, tiện ích bổ sung và ứng dụng web của mình. Đăng nhập nhiều tài khoản hoặc đăng nhập vào nhiều Tài khoản Google cùng một lúc không được hỗ trợ cho Apps Script, tiện ích bổ sung hoặc ứng dụng web

Để khắc phục sự cố do đăng nhập nhiều lần, hãy thử một trong các giải pháp sau

  • Đăng xuất khỏi tất cả các Tài khoản Google của bạn và chỉ đăng nhập vào tài khoản có dự án Apps Script, tiện ích bổ sung hoặc ứng dụng web mà bạn cần truy cập
  • Mở cửa sổ ẩn danh trong Google Chrome hoặc cửa sổ duyệt web riêng tư tương đương và đăng nhập vào Tài khoản Google có dự án Apps Script, tiện ích bổ sung hoặc ứng dụng web mà bạn cần truy cập

Tìm sự giúp đỡ

Gỡ lỗi sự cố bằng cách sử dụng các công cụ và kỹ thuật được liệt kê ở trên có thể giải quyết nhiều vấn đề khác nhau, nhưng có thể có những sự cố bạn gặp phải cần thêm trợ giúp để giải quyết. Xem trang Hỗ trợ của chúng tôi để biết thông tin về nơi đặt câu hỏi và gửi lỗi

Tại sao tập lệnh ứng dụng Google không hoạt động?

Có một vài nguyên nhân có thể gây ra những lỗi này. Máy chủ hoặc hệ thống của Google tạm thời không khả dụng . Đợi một lúc và thử chạy lại tập lệnh. Có lỗi trong tập lệnh của bạn không có thông báo lỗi tương ứng.

Tại sao Script Editor không hiển thị trong Google Trang tính?

Nếu các tùy chọn menu Công cụ -> Trình chỉnh sửa tập lệnh và Tiện ích bổ sung bị thiếu khi bạn mở tệp, thì đó có thể không thực sự là tệp Google Trang tính. Make sure to navigate to File --> Save As Google Sheets. Then the Script Editor option in the Tools menu and the Add-ons menu will be available.