Ứng dụng web

Nếu tạo giao diện người dùng cho một tập lệnh, bạn có thể xuất bản tập lệnh đó dưới dạng một ứng dụng web. Ví dụ: tập lệnh cho phép người dùng đặt lịch hẹn với các thành viên của nhóm hỗ trợ sẽ được trình bày tốt nhất dưới dạng một ứng dụng web để người dùng có thể truy cập trực tiếp từ trình duyệt của họ.

Cả tập lệnh độc lậptập lệnh được liên kết với các ứng dụng Google Workspace đều có thể được chuyển thành ứng dụng web, miễn là chúng đáp ứng các yêu cầu bên dưới.

Yêu cầu đối với ứng dụng web

Bạn có thể xuất bản một tập lệnh dưới dạng ứng dụng web nếu tập lệnh đó đáp ứng các yêu cầu sau:

Tham số yêu cầu

Khi người dùng truy cập vào một ứng dụng hoặc một chương trình gửi cho ứng dụng một yêu cầu HTTP GET, Apps Script sẽ chạy hàm doGet(e). Khi một chương trình gửi cho ứng dụng yêu cầu HTTP POST, Apps Script sẽ chạy doPost(e) thay vào đó. Trong cả hai trường hợp, đối số e đại diện cho một thông số sự kiện có thể chứa thông tin về mọi thông số yêu cầu. Cấu trúc của đối tượng sự kiện được thể hiện trong bảng bên dưới:

Trường
e.queryString

Giá trị của phần chuỗi truy vấn trong URL hoặc null nếu không có chuỗi truy vấn nào được chỉ định

name=alice&n=1&n=2
e.parameter

Một đối tượng gồm các cặp khoá/giá trị tương ứng với các thông số yêu cầu. Chỉ giá trị đầu tiên được trả về cho các tham số có nhiều giá trị.

{"name": "alice", "n": "1"}
e.parameters

Một đối tượng tương tự như e.parameter, nhưng có một mảng giá trị cho mỗi khoá

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

Đường dẫn URL sau /exec hoặc /dev. Ví dụ: nếu đường dẫn URL kết thúc bằng /exec/hello, thì thông tin đường dẫn là hello.

e.contextPath Không được dùng, luôn là chuỗi trống.
e.contentLength

Độ dài của phần nội dung yêu cầu cho các yêu cầu POST hoặc -1 cho các yêu cầu GET

332
e.postData.length

Tương tự như e.contentLength

332
e.postData.type

Loại MIME của nội dung yêu cầu POST

text/csv
e.postData.contents

Văn bản nội dung của phần nội dung POST

Alice,21
e.postData.name

Luôn là giá trị "postData"

postData

Ví dụ: bạn có thể truyền các tham số như usernameage đến một URL như minh hoạ dưới đây:

https://script.google.com/.../exec?username=jsmith&age=21

Sau đó, bạn có thể hiển thị các tham số như sau:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

Trong ví dụ trên, doGet(e) trả về kết quả sau:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

Triển khai tập lệnh dưới dạng ứng dụng web

Để triển khai một tập lệnh dưới dạng ứng dụng web, hãy làm theo các bước sau:

  1. Ở trên cùng bên phải của dự án tập lệnh, hãy nhấp vào Triển khai > Triển khai mới.
  2. Bên cạnh "Chọn loại", hãy nhấp vào Bật các loại triển khai > Ứng dụng web.
  3. Nhập thông tin về ứng dụng web của bạn vào các trường trong phần "Cấu hình triển khai".
  4. Nhấp vào Triển khai.

Bạn có thể chia sẻ URL của ứng dụng web với những người mà bạn muốn họ sử dụng ứng dụng của bạn, miễn là bạn đã cấp cho họ quyền truy cập.

Kiểm thử việc triển khai ứng dụng web

Để kiểm thử tập lệnh dưới dạng một ứng dụng web, hãy làm theo các bước bên dưới:

  1. Ở trên cùng bên phải của dự án tập lệnh, hãy nhấp vào Triển khai > Kiểm thử việc triển khai.
  2. Bên cạnh "Chọn loại", hãy nhấp vào Bật các loại triển khai > Ứng dụng web.
  3. Trong phần URL của ứng dụng web, hãy nhấp vào Sao chép.
  4. Dán URL vào trình duyệt rồi kiểm thử ứng dụng web của bạn.

    URL này kết thúc bằng /dev và chỉ những người dùng có quyền chỉnh sửa tập lệnh mới có thể truy cập. Phiên bản ứng dụng này luôn chạy mã đã lưu gần đây nhất và chỉ dành cho mục đích kiểm thử trong quá trình phát triển.

Quyền

Quyền cho một ứng dụng web sẽ khác nhau tuỳ thuộc vào cách bạn chọn thực thi ứng dụng:

  • Chạy ứng dụng dưới tên của tôi – Trong trường hợp này, tập lệnh luôn chạy dưới tên của bạn (chủ sở hữu tập lệnh), bất kể ai truy cập vào ứng dụng web.
  • Thực thi ứng dụng với tư cách là người dùng truy cập vào ứng dụng web – Trong trường hợp này, tập lệnh chạy dưới danh tính của người dùng đang hoạt động bằng ứng dụng web. Phương pháp cấp quyền này khiến ứng dụng web hiển thị email của chủ sở hữu tập lệnh khi người dùng uỷ quyền truy cập.

Nhúng ứng dụng web vào Google Sites

Để nhúng một ứng dụng web vào Google Sites, trước tiên, ứng dụng đó phải được triển khai. Bạn cũng cần URL đã triển khai trong hộp thoại Deploy.

Để nhúng một ứng dụng web vào trang Sites, hãy làm theo các bước sau:

  1. Mở trang Sites mà bạn muốn thêm ứng dụng web.
  2. Chọn Chèn > Nhúng URL.
  3. Dán URL của ứng dụng web rồi nhấp vào THÊM.

Ứng dụng web sẽ xuất hiện trong một khung hình trong bản xem trước của trang. Khi bạn xuất bản trang, người xem trang web của bạn có thể cần phải uỷ quyền cho ứng dụng web trước khi ứng dụng này thực thi bình thường. Các ứng dụng web trái phép sẽ hiển thị lời nhắc uỷ quyền cho người dùng.

Ứng dụng web và nhật ký duyệt web

Bạn có thể muốn một ứng dụng web Apps Script mô phỏng một ứng dụng nhiều trang hoặc một ứng dụng có giao diện người dùng động được kiểm soát thông qua các thông số URL. Để thực hiện việc này một cách hiệu quả, bạn có thể xác định một đối tượng trạng thái để biểu thị giao diện người dùng hoặc trang của ứng dụng, đồng thời đẩy trạng thái vào nhật ký trình duyệt khi người dùng điều hướng ứng dụng của bạn. Bạn cũng có thể theo dõi các sự kiện trong nhật ký để ứng dụng web của bạn hiển thị giao diện người dùng chính xác khi người dùng điều hướng qua lại bằng các nút trên trình duyệt. Bằng cách truy vấn các tham số URL tại thời điểm tải, bạn có thể để ứng dụng của mình tạo giao diện người dùng một cách linh hoạt dựa trên các tham số đó, cho phép người dùng khởi động ứng dụng ở một trạng thái cụ thể.

Apps Script cung cấp 2 API JavaScript không đồng bộ phía ứng dụng để hỗ trợ việc tạo các ứng dụng web được liên kết với nhật ký trình duyệt:

  • google.script.history cung cấp các phương thức cho phép phản hồi linh hoạt đối với các thay đổi trong nhật ký trình duyệt. Điều này bao gồm: đẩy các trạng thái (Đối tượng đơn giản mà bạn có thể xác định) vào nhật ký trình duyệt, thay thế trạng thái trên cùng trong ngăn xếp nhật ký và đặt hàm gọi lại của trình nghe để phản hồi các thay đổi về nhật ký.

  • google.script.url cung cấp phương tiện để truy xuất các tham số URL và phân đoạn URL của trang hiện tại (nếu có).

Các API nhật ký này chỉ dành cho ứng dụng web. Chúng không được hỗ trợ cho thanh bên, hộp thoại hoặc tiện ích bổ sung. Bạn cũng không nên sử dụng chức năng này trong các ứng dụng web được nhúng trong Google Sites.