Thiết lập dự án Apps Script

Việc thiết lập một dự án Apps Script để gọi trực tiếp Google Forms API thông qua lệnh gọi REST rất đơn giản. Giả sử bạn đã định cấu hình một dự án trên Google Cloud, hãy làm như sau:

  1. Tạo một dự án Apps Script mới.
  2. Thay đổi mã số dự án trên Google Cloud được liên kết cho phù hợp với dự án mà bạn đã bật cho Google Biểu mẫu API.
  3. Chỉnh sửa tệp kê khai (appsscript.json) để thêm các phạm vi OAuth cần thiết.
  4. Thêm mã Apps Script để tìm nạp mã thông báo OAuth và thực hiện lệnh gọi REST bằng mã thông báo đó.

Sau đây là hướng dẫn nhanh về các bước này.

Tạo và định cấu hình một dự án Apps Script mới

  1. Sử dụng cùng một mã nhận dạng Google mà bạn đã dùng để định cấu hình dự án GCP, hãy chuyển đến Trang tổng quan Apps Script, sau đó nhấp vào Dự án mới.
  2. Sau khi mở dự án, hãy nhấp vào Cài đặt dự án.
  3. Chọn hộp đánh dấu Hiển thị tệp kê khai "appsscript.json" trong trình chỉnh sửa.
  4. Trong phần Dự án Google Cloud Platform (GCP), hãy nhấp vào Thay đổi dự án rồi nhập số dự án GCP mà bạn đã định cấu hình cho Forms API.

Dự án Apps Script của bạn hiện đã được định cấu hình để truy cập vào Google Forms API. Bước bắt buộc tiếp theo là thêm các phạm vi OAuth thích hợp.

Thêm phạm vi của OAuth

Để tạo mã thông báo OAuth có phạm vi phù hợp trong Apps Script, bạn cần đặt các phạm vi bắt buộc trong tệp kê khai của dự án.

  1. Trong trình chỉnh sửa, hãy mở appsscript.json.
  2. Thêm các phạm vi vào nội dung của tệp kê khai.

    {
      ...
    "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request",
        "https://www.googleapis.com/auth/drive",
        "https://www.googleapis.com/auth/drive.readonly",
        "https://www.googleapis.com/auth/forms.body",
        "https://www.googleapis.com/auth/forms.body.readonly",
        "https://www.googleapis.com/auth/forms.responses.readonly"
      ],
     ...
     }
    
  3. Nhấp vào Lưu dự án và sửa mọi lỗi cú pháp nếu cần. Giờ đây, dự án của bạn có thể gọi Google Forms API thông qua lệnh gọi REST.

Thêm mã Apps Script để gọi API

Trước khi viết mã để gọi một biểu mẫu, bạn cần xác định một biểu mẫu mà bạn sở hữu, có câu trả lời và ghi lại mã biểu mẫu của biểu mẫu đó. Bạn có thể tìm thấy mã nhận dạng biểu mẫu trong URL khi chỉnh sửa biểu mẫu:

https://docs.google.com/forms/d/<FORM_ID>/edit

Để gọi API, bạn sẽ sử dụng lệnh gọi UrlFetchApp của Apps Script.

  1. Mở Code.gs rồi thêm đoạn mã sau:

    forms-api/snippets/retrieve_all_responses.gs
     function callFormsAPI() {
      console.log('Calling the Forms API!');
      const formId = '<YOUR_FORM_ID>';
    
      // Get OAuth Token
     const OAuthToken = ScriptApp.getOAuthToken();
     console.log('OAuth token is: ' + OAuthToken);
     const formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses';
     console.log('formsAPIUrl is: ' + formsAPIUrl);
     const options = {
        'headers': {
          Authorization: 'Bearer ' + OAuthToken,
          Accept: 'application/json'
        },
        'method': 'get'
      };  
    const response = UrlFetchApp.fetch(formsAPIUrl, options);
     console.log('Response from forms.responses was: ' + response);
    }
  2. Thay thế YOUR_FORM_ID bằng giá trị mà bạn đã ghi lại trước đó.

    Ví dụ: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Nhấp vào Lưu dự án và sửa mọi lỗi cú pháp nếu cần.

Kiểm thử mã

  1. Nhấp vào Run (Chạy).
  2. Uỷ quyền cho dự án nếu cần bằng cách sử dụng cùng một mã nhận dạng Google như trước.

Sau khi bắt đầu, bạn sẽ thấy một phản hồi trong Execution log (Nhật ký thực thi) tương tự như sau:

Execution started
Calling the Forms API!
OAuth token is: ya29.a0ARrdaM8IMjtlv…
formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses
Response from Forms.responses was: {
"responses": [
    {
      "responseId":"...",
      "createTime": "2021-03-25T01:23:58.146Z",
      "lastSubmittedTime": "2021-03-25T01:23:58.146607Z",
      "answers": {
        "1e9b0ead": {
          "questionId": "1e9b0ead",
          "textAnswers": {
            "answers": [
              {
                "value": "Red"
              }
            ]
          }
        },
        "773ed8f3": {
          "questionId": "773ed8f3",
          "textAnswers": {
            "answers": [
              {
                "value": "Tesla"
              }
            ]
          }
        }
      }
    }
  ]
}
Execution completed

Các bước tiếp theo

Sau khi bạn gọi thành công API bằng Apps Script, hãy tham khảo tài liệu tham khảo và thử nghiệm bằng cách thực hiện các lệnh gọi khác đến API.