Menyiapkan project Apps Script

Menyiapkan project Apps Script untuk memanggil Google Forms API secara langsung melalui panggilan REST sangatlah mudah. Dengan asumsi Anda telah mengonfigurasi project Google Cloud, lakukan hal berikut:

  1. Buat project Apps Script baru.
  2. Ubah nomor project Google Cloud terkait agar cocok dengan project yang Anda aktifkan untuk Google Forms API.
  3. Edit file Manifes (appsscript.json) untuk menambahkan cakupan OAuth yang diperlukan.
  4. Tambahkan kode Apps Script untuk mengambil token OAuth dan melakukan panggilan REST menggunakan token tersebut.

Berikut adalah panduan singkat langkah-langkah ini.

Membuat dan mengonfigurasi project Apps Script baru

  1. Dengan menggunakan ID Google yang sama dengan yang Anda gunakan untuk mengonfigurasi project GCP, buka Dasbor Apps Script, lalu klik Project baru.
  2. Setelah project Anda terbuka, klik Project Settings.
  3. Pilih kotak centang Tampilkan file manifes "appsscript.json" dalam editor.
  4. Di bagian Google Cloud Platform (GCP) Project, klik Change project, lalu masukkan nomor project GCP yang Anda konfigurasi untuk Forms API.

Project Apps Script Anda kini dikonfigurasi untuk mengakses Google Forms API. Langkah wajib berikutnya adalah menambahkan cakupan OAuth yang tepat.

Menambahkan cakupan OAuth

Untuk membuat token OAuth yang tercakup dengan benar di Apps Script, Anda perlu menyetel cakupan yang diperlukan dalam file manifes project.

  1. Di editor, buka appsscript.json.
  2. Tambahkan cakupan ke isi manifes.

    {
      ...
    "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. Klik Simpan project dan perbaiki error sintaksis jika diperlukan. Project Anda kini dapat memanggil Google Forms API melalui panggilan REST.

Menambahkan kode Apps Script untuk memanggil API

Sebelum menulis kode untuk memanggil formulir, Anda harus mengidentifikasi formulir yang Anda miliki yang memiliki respons dan mencatat ID formulirnya. ID formulir dapat ditemukan di URL saat mengedit formulir:

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

Untuk memanggil API, Anda akan menggunakan panggilan UrlFetchApp Apps Script.

  1. Buka Code.gs dan tambahkan kode berikut:

    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. Ganti YOUR_FORM_ID dengan nilai yang Anda catat sebelumnya.

    Contoh: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Klik Simpan project dan perbaiki error sintaksis jika diperlukan.

Menguji kode

  1. Klik Run.
  2. Beri otorisasi project sesuai kebutuhan menggunakan ID Google yang sama seperti sebelumnya.

Setelah dimulai, Anda akan melihat respons di Execution log yang mirip dengan ini:

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

Langkah berikutnya

Setelah Anda berhasil memanggil API dengan Apps Script, lihat dokumentasi referensi dan coba lakukan panggilan lain ke API.