API bên ngoài

Google Apps Script có thể tương tác với các API trên toàn bộ web. Hãy dùng hướng dẫn này để làm việc với nhiều loại API trong tập lệnh.

Kết nối với API công khai

Sử dụng dịch vụ UrlFetch để đưa ra yêu cầu API trực tiếp.

Ví dụ sau đây sử dụng API GitHub để tìm kiếm những kho lưu trữ có từ 100 lượt gắn dấu sao trở lên và đề cập đến "Apps Script". Yêu cầu API này không yêu cầu uỷ quyền hoặc khoá API.

var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
  + '?sort=stars'
  + '&q=' + encodeURIComponent(query);

var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);

Đưa ra yêu cầu cho các dịch vụ bằng OAuth

Các API thay mặt người dùng thường yêu cầu uỷ quyền, thường sử dụng giao thức OAuth. Apps Script không hỗ trợ giao thức này theo mặc định, nhưng có những thư viện nguồn mở mà bạn có thể dùng để thực hiện quy trình OAuth và gửi thông tin xác thực cùng với các yêu cầu của mình:

Xác thực bằng tài khoản dịch vụ

Để gọi một API từ Apps Script, bạn có thể chọn sử dụng phương thức xác thực tài khoản dịch vụ vì bất kỳ lý do nào sau đây:

  • Hiệu suất cao hơn nhờ các API của Google Cloud
  • Tự động hoá và các tác vụ chạy trong thời gian dài
  • Cải thiện khả năng bảo mật (đặc quyền tối thiểu)
  • Quản lý quyền truy cập tập trung

Để sử dụng tài khoản dịch vụ trong Apps Script, hãy xem phần Xác thực dưới dạng một dự án Apps Script bằng tài khoản dịch vụ.

Kết nối với các dịch vụ của Google Cloud

Bạn có thể sử dụng phương thức ScriptApp.getIdentityToken() để lấy mã thông báo danh tính OpenID Connect (Mã thông báo Web JSON hoặc JWT) cho người dùng có hiệu lực. Bạn có thể dùng mã thông báo này để xác thực với các dịch vụ của Google Cloud (chẳng hạn như Cloud Run) được định cấu hình để chấp nhận mã thông báo này.

Để biết thêm thông tin, hãy xem bài viết Kết nối với các dịch vụ của Google Cloud.

Làm việc với JSON

Việc xử lý các đối tượng JSON cũng tương tự như việc xử lý XML, ngoại trừ việc phân tích cú pháp hoặc mã hoá một đối tượng JSON sẽ dễ dàng hơn nhiều.

Khi một API trả về phản hồi JSON thô, hãy truy cập vào phản hồi chuỗi JSON bằng phương thức HTTPResponse.getContentText. Sau khi truy xuất chuỗi, hãy dùng JSON.parse() để phân tích cú pháp chuỗi đó thành một đối tượng JavaScript.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

Tương tự, để chuyển đổi một đối tượng JavaScript thành chuỗi JSON cho tải trọng yêu cầu, hãy sử dụng JSON.stringify().

var data = {
  'entry': {
    'group': {
      'title': 'Dog Skateboarding',
      'description': 'My dog gets some serious air'
    },
    'keywords': 'dog, skateboard'
  }
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.

Phân tích cú pháp XML

Nếu một API bên ngoài trả về phản hồi XML thô cho một yêu cầu, hãy truy cập vào phản hồi XML bằng phương thức HTTPResponse.getContentText().

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

Khi đưa ra yêu cầu XML đến một API, hãy dùng các phương thức XmlService để tạo XML cần gửi.

var root = XmlService.createElement('entry')
    .setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
    .setAttribute('title', 'Dog Skateboarding')
    .setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.