API bên ngoài

Google Apps Script có thể tương tác với các API trên khắp web. Hãy sử 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 các API công khai

Sử dụng dịch vụ UrlFetch để thực hiện trực tiếp các yêu cầu API.

Ví dụ sau đây sử dụng API GitHub để tìm kiếm các kho lưu trữ có từ 100 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);

Thực hiện yêu cầu đối với các dịch vụ bằng OAuth

Các API thay mặt cho người dùng thường yêu cầu uỷ quyền, thường là sử dụng giao thức OAuth. Apps Script không cung cấp tính năng hỗ trợ tích hợp cho giao thức này, nhưng có các thư viện nguồn mở mà bạn có thể sử dụng để thực hiện quy trình OAuth và gửi thông tin xác thực bằng các yêu cầu:

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 tính năng 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 với các Cloud API của Google
  • 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 (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 bài viết Xác thực dưới dạng 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 ScriptApp.getIdentityToken() phương thức để lấy mã thông báo nhận dạng OpenID Connect (một Mã thông báo web JSON hoặc JWT) cho người dùng hiệu quả. Bạn có thể sử 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 làm việc với các đối tượng JSON tương tự như làm việc với XML, ngoại trừ việc phân tích cú pháp hoặc mã hoá đối tượng JSON 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 sử dụng JSON.parse() để phân tích cú pháp thành đố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 đố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 thực hiện yêu cầu XML đối với một API, hãy sử dụng các XmlService phương thức để 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.