Class ScriptApp

Tập lệnhỨng dụng

Truy cập và thao tác với tính năng phát hành tập lệnh và trình kích hoạt. Lớp này cho phép người dùng tạo trình kích hoạt tập lệnh và kiểm soát việc phát hành tập lệnh dưới dạng dịch vụ.

Thuộc tính

Thuộc tínhLoạiMô tả
AuthModeAuthModeMột enum xác định những danh mục dịch vụ được uỷ quyền mà Apps Script có thể thực thi thông qua một hàm được kích hoạt.
AuthorizationStatusAuthorizationStatusMột tập hợp liệt kê cho biết trạng thái uỷ quyền của một tập lệnh.
EventTypeEventTypeMột enum biểu thị loại sự kiện được kích hoạt.
InstallationSourceInstallationSourceMột liệt kê cho biết cách cài đặt tập lệnh cho người dùng dưới dạng tiện ích bổ sung.
TriggerSourceTriggerSourceMột enum biểu thị nguồn của sự kiện kích hoạt điều kiện kích hoạt.
WeekDayWeekdayMột enum đại diện cho các ngày trong tuần.

Phương thức

Phương thứcLoại dữ liệu trả vềMô tả ngắn
deleteTrigger(trigger)voidXoá điều kiện kích hoạt đã cho để điều kiện kích hoạt đó không còn chạy nữa.
getAuthorizationInfo(authMode)AuthorizationInfoLấy một đối tượng dùng để xác định xem người dùng có cần uỷ quyền cho tập lệnh này sử dụng một hoặc nhiều dịch vụ hay không, cũng như cung cấp URL cho hộp thoại uỷ quyền.
getIdentityToken()StringNhận mã thông báo danh tính OpenID Connect cho người dùng hiệu quả, nếu phạm vi openid đã được cấp.
getInstallationSource()InstallationSourceTrả về một giá trị enum cho biết cách tập lệnh được cài đặt dưới dạng tiện ích bổ sung cho người dùng hiện tại (ví dụ: liệu người dùng có tự cài đặt tập lệnh đó thông qua Cửa hàng Chrome trực tuyến hay không, hoặc liệu quản trị viên miền có cài đặt tập lệnh đó cho tất cả người dùng hay không).
getOAuthToken()StringLấy mã truy cập OAuth 2.0 cho người dùng hợp lệ.
getProjectTriggers()Trigger[]Lấy tất cả các trình kích hoạt có thể cài đặt được liên kết với dự án hiện tại và người dùng hiện tại.
getScriptId()StringLấy mã nhận dạng duy nhất của dự án tập lệnh.
getService()ServiceLấy một đối tượng dùng để kiểm soát việc phát hành tập lệnh dưới dạng ứng dụng web.
getUserTriggers(document)Trigger[]Lấy tất cả trình kích hoạt có thể cài đặt mà người dùng này sở hữu trong tài liệu đã cho, chỉ dành cho tập lệnh hoặc tiện ích bổ sung này.
getUserTriggers(form)Trigger[]Lấy tất cả các trình kích hoạt có thể cài đặt mà người dùng này sở hữu ở dạng đã cho, chỉ dành cho tập lệnh hoặc tiện ích bổ sung này.
getUserTriggers(spreadsheet)Trigger[]Lấy tất cả các trình kích hoạt có thể cài đặt mà người dùng này sở hữu trong bảng tính đã cho, chỉ dành cho tập lệnh hoặc tiện ích bổ sung này.
invalidateAuth()voidLàm mất hiệu lực quyền uỷ quyền mà người dùng hợp lệ có để thực thi tập lệnh hiện tại.
newStateToken()StateTokenBuilderTạo một trình tạo cho mã thông báo trạng thái có thể được sử dụng trong API gọi lại (chẳng hạn như luồng OAuth).
newTrigger(functionName)TriggerBuilderBắt đầu quá trình tạo một trình kích hoạt có thể cài đặt. Khi được kích hoạt, trình kích hoạt này sẽ gọi một hàm nhất định.

Tài liệu chi tiết

deleteTrigger(trigger)

Xoá điều kiện kích hoạt đã cho để điều kiện kích hoạt đó không còn chạy nữa.

// Deletes all triggers in the current project.
const triggers = ScriptApp.getProjectTriggers();
for (let i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

Tham số

TênLoạiMô tả
triggerTriggerĐiều kiện kích hoạt để xoá.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu được uỷ quyền với một hoặc nhiều phạm vi sau:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

Lấy một đối tượng dùng để xác định xem người dùng có cần uỷ quyền cho tập lệnh này sử dụng một hoặc nhiều dịch vụ hay không, cũng như cung cấp URL cho hộp thoại uỷ quyền. Nếu tập lệnh được phát hành dưới dạng tiện ích bổ sung sử dụng trình kích hoạt có thể cài đặt, thì thông tin này có thể được dùng để kiểm soát quyền truy cập vào các phần mã mà người dùng thiếu quyền uỷ quyền cần thiết. Ngoài ra, tiện ích bổ sung có thể yêu cầu người dùng mở URL cho hộp thoại uỷ quyền để giải quyết vấn đề.

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
url = authInfo.getAuthorizationUrl();

Tham số

TênLoạiMô tả
authModeAuthModechế độ uỷ quyền mà thông tin uỷ quyền được yêu cầu; trong gần như mọi trường hợp, giá trị của authMode phải là ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL), vì không có chế độ uỷ quyền nào khác yêu cầu người dùng cấp quyền

Cầu thủ trả bóng

AuthorizationInfo – một đối tượng có thể cung cấp thông tin về trạng thái uỷ quyền của người dùng


getIdentityToken()

Nhận mã thông báo danh tính OpenID Connect cho người dùng hiệu quả, nếu phạm vi openid đã được cấp. Phạm vi này không được đưa vào theo mặc định và bạn phải thêm phạm vi này dưới dạng phạm vi rõ ràng trong tệp kê khai để yêu cầu. Thêm các phạm vi https://www.googleapis.com/auth/userinfo.email hoặc https://www.googleapis.com/auth/userinfo.profile để trả về thêm thông tin người dùng trong mã thông báo.

Mã thông báo nhận dạng được trả về là một Mã thông báo web JSON (JWT) đã mã hoá và bạn phải giải mã mã thông báo này để trích xuất thông tin. Các ví dụ sau đây cho biết cách giải mã mã thông báo và trích xuất mã hồ sơ Google của người dùng hiệu quả.

const idToken = ScriptApp.getIdentityToken();
const body = idToken.split('.')[1];
const decoded = Utilities
                    .newBlob(
                        Utilities.base64Decode(body),
                        )
                    .getDataAsString();
const payload = JSON.parse(decoded);

Logger.log(`Profile ID: ${payload.sub}`);
Xem tài liệu về OpenID Connect để biết danh sách đầy đủ các trường (câu nhận định) được trả về.

Cầu thủ trả bóng

String – Mã thông báo nhận dạng (nếu có); nếu không thì null.


getInstallationSource()

Trả về một giá trị enum cho biết cách tập lệnh được cài đặt dưới dạng tiện ích bổ sung cho người dùng hiện tại (ví dụ: liệu người dùng có tự cài đặt tập lệnh đó thông qua Cửa hàng Chrome trực tuyến hay không, hoặc liệu quản trị viên miền có cài đặt tập lệnh đó cho tất cả người dùng hay không).

Cầu thủ trả bóng

InstallationSource – Nguồn cài đặt.


getOAuthToken()

Lấy mã truy cập OAuth 2.0 cho người dùng hợp lệ. Nếu phạm vi OAuth của tập lệnh đủ để uỷ quyền cho một API Google khác thường yêu cầu luồng OAuth riêng (chẳng hạn như Google Picker), thì các tập lệnh có thể bỏ qua lời nhắc uỷ quyền thứ hai bằng cách truyền mã thông báo này. Mã thông báo sẽ hết hạn sau một khoảng thời gian (tối thiểu là vài phút); các tập lệnh sẽ xử lý các lỗi uỷ quyền và gọi phương thức này để lấy mã thông báo mới khi cần.

Mã thông báo do phương thức này trả về chỉ bao gồm các phạm vi mà tập lệnh hiện cần. Các phạm vi đã được uỷ quyền trước đó nhưng không còn được tập lệnh sử dụng sẽ không có trong mã thông báo được trả về. Nếu cần thêm phạm vi OAuth ngoài phạm vi mà chính tập lệnh yêu cầu, bạn có thể chỉ định các phạm vi đó trong tệp kê khai của tập lệnh.

Cầu thủ trả bóng

String – Biểu thị chuỗi của mã thông báo OAuth 2.0.


getProjectTriggers()

Lấy tất cả các trình kích hoạt có thể cài đặt được liên kết với dự án hiện tại và người dùng hiện tại.

Logger.log(
    `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`,
);

Cầu thủ trả bóng

Trigger[] – Một mảng các điều kiện kích hoạt của người dùng hiện tại được liên kết với dự án này.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu được uỷ quyền với một hoặc nhiều phạm vi sau:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

Lấy mã nhận dạng duy nhất của dự án tập lệnh. Đây là phương thức ưu tiên để lấy giá trị nhận dạng duy nhất cho dự án tập lệnh thay vì getProjectKey(). Bạn có thể sử dụng mã nhận dạng này ở mọi nơi mà trước đây bạn đã cung cấp khoá dự án.

Cầu thủ trả bóng

String – Mã của dự án tập lệnh.


getService()

Lấy một đối tượng dùng để kiểm soát việc phát hành tập lệnh dưới dạng ứng dụng web.

// Get the URL of the published web app.
const url = ScriptApp.getService().getUrl();

Cầu thủ trả bóng

Service – Một đối tượng dùng để quan sát và kiểm soát việc phát hành tập lệnh dưới dạng ứng dụng web.


getUserTriggers(document)

Lấy tất cả trình kích hoạt có thể cài đặt mà người dùng này sở hữu trong tài liệu đã cho, chỉ dành cho tập lệnh hoặc tiện ích bổ sung này. Bạn không thể sử dụng phương thức này để xem các trình kích hoạt được đính kèm vào các tập lệnh khác.

const doc = DocumentApp.getActiveDocument();
const triggers = ScriptApp.getUserTriggers(doc);
// Log the handler function for the first trigger in the array.
Logger.log(triggers[0].getHandlerFunction());

Tham số

TênLoạiMô tả
documentDocumentTệp Google Tài liệu có thể chứa các trình kích hoạt có thể cài đặt.

Cầu thủ trả bóng

Trigger[] – Một mảng các trình kích hoạt do người dùng này sở hữu trong tài liệu nhất định.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu được uỷ quyền với một hoặc nhiều phạm vi sau:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

Lấy tất cả các trình kích hoạt có thể cài đặt mà người dùng này sở hữu ở dạng đã cho, chỉ dành cho tập lệnh hoặc tiện ích bổ sung này. Bạn không thể sử dụng phương thức này để xem các trình kích hoạt được đính kèm vào các tập lệnh khác.

const form = FormApp.getActiveForm();
const triggers = ScriptApp.getUserTriggers(form);
// Log the trigger source for the first trigger in the array.
Logger.log(triggers[0].getTriggerSource());

Tham số

TênLoạiMô tả
formFormTệp Google Biểu mẫu có thể chứa các trình kích hoạt có thể cài đặt.

Cầu thủ trả bóng

Trigger[] – Một mảng các trình kích hoạt do người dùng này sở hữu trong biểu mẫu nhất định.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu được uỷ quyền với một hoặc nhiều phạm vi sau:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

Lấy tất cả các trình kích hoạt có thể cài đặt mà người dùng này sở hữu trong bảng tính đã cho, chỉ dành cho tập lệnh hoặc tiện ích bổ sung này. Bạn không thể sử dụng phương thức này để xem các trình kích hoạt được đính kèm vào các tập lệnh khác.

const ss = SpreadsheetApp.getActiveSpreadsheet();
const triggers = ScriptApp.getUserTriggers(ss);
// Log the event type for the first trigger in the array.
Logger.log(triggers[0].getEventType());

Tham số

TênLoạiMô tả
spreadsheetSpreadsheetTệp Google Trang tính có thể chứa các trình kích hoạt có thể cài đặt.

Cầu thủ trả bóng

Trigger[] – Một mảng các trình kích hoạt do người dùng này sở hữu trong bảng tính nhất định.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu được uỷ quyền với một hoặc nhiều phạm vi sau:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

Làm mất hiệu lực quyền uỷ quyền mà người dùng hợp lệ có để thực thi tập lệnh hiện tại. Dùng để vô hiệu hoá mọi quyền cho tập lệnh hiện tại. Điều này đặc biệt hữu ích đối với các hàm được gắn thẻ là uỷ quyền một lần. Vì các hàm uỷ quyền một lần chỉ có thể được gọi trong lần chạy đầu tiên sau khi tập lệnh đã được uỷ quyền, nên nếu muốn thực hiện một hành động sau đó, bạn phải thu hồi mọi quyền uỷ quyền mà tập lệnh đã có để người dùng có thể thấy lại hộp thoại uỷ quyền.

ScriptApp.invalidateAuth();

Gửi

Error – khi không huỷ hiệu lực được


newStateToken()

Tạo một trình tạo cho mã thông báo trạng thái có thể được sử dụng trong API gọi lại (chẳng hạn như luồng OAuth).

// Generate a callback URL, given the name of a callback function. The script
// does not need to be published as a web app; the /usercallback URL suffix
// replaces /edit in any script's URL.
function getCallbackURL(callbackFunction) {
  // IMPORTANT: Replace string below with the URL from your script, minus the
  // /edit at the end.
  const scriptUrl =
      'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  const urlSuffix = '/usercallback?state=';
  const stateToken = ScriptApp.newStateToken()
                         .withMethod(callbackFunction)
                         .withTimeout(120)
                         .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

Trong hầu hết các luồng OAuth2, mã thông báo state được truyền trực tiếp đến điểm cuối uỷ quyền (không phải là một phần của URL gọi lại), sau đó điểm cuối uỷ quyền sẽ truyền mã thông báo đó dưới dạng một phần của URL gọi lại.

Ví dụ:

  • Tập lệnh chuyển hướng người dùng đến URL uỷ quyền OAuth2: https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
  • Người dùng nhấp vào uỷ quyền và trang uỷ quyền OAuth2 sẽ chuyển hướng người dùng trở lại https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
  • Lệnh chuyển hướng ở trên (quay lại http://script.google.com/...) sẽ khiến trình duyệt yêu cầu /usercallback, lệnh này sẽ gọi phương thức do StateTokenBuilder.withMethod(method) chỉ định.

Cầu thủ trả bóng

StateTokenBuilder – Một đối tượng dùng để tiếp tục quá trình tạo mã thông báo trạng thái.


newTrigger(functionName)

Bắt đầu quá trình tạo một trình kích hoạt có thể cài đặt. Khi được kích hoạt, trình kích hoạt này sẽ gọi một hàm nhất định.

// Creates an edit trigger for a spreadsheet identified by ID.
ScriptApp.newTrigger('myFunction')
    .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')
    .onEdit()
    .create();

Tham số

TênLoạiMô tả
functionNameStringHàm cần gọi khi điều kiện kích hoạt được kích hoạt. Bạn có thể sử dụng các hàm từ thư viện đi kèm, chẳng hạn như Library.libFunction1.

Cầu thủ trả bóng

TriggerBuilder – Một đối tượng dùng để tiếp tục quy trình tạo điều kiện kích hoạt.

Ủy quyền

Các tập lệnh sử dụng phương thức này yêu cầu được uỷ quyền với một hoặc nhiều phạm vi sau:

  • https://www.googleapis.com/auth/script.scriptapp

Các phương thức ngừng hoạt động