Class FormResponse

FormResponse

Respons untuk formulir secara keseluruhan. FormResponse dapat digunakan dalam tiga cara: untuk mengakses jawaban yang dikirim oleh responden (lihat getItemResponses()), untuk secara terprogram kirimkan respons terhadap formulir (lihat withItemResponse(response) dan submit()), dan untuk membuat URL untuk formulir yang mengisi otomatis kolom menggunakan jawaban yang tepat. FormResponse dapat dibuat atau diakses dari Form.

// Open a form by ID and log the responses to each question.
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var formResponses = form.getResponses();
for (var i = 0; i < formResponses.length; i++) {
  var formResponse = formResponses[i];
  var itemResponses = formResponse.getItemResponses();
  for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j];
    Logger.log('Response #%s to the question "%s" was "%s"',
        (i + 1).toString(),
        itemResponse.getItem().getTitle(),
        itemResponse.getResponse());
  }
}

Metode

MetodeJenis hasil yang ditampilkanDeskripsi singkat
getEditResponseUrl()StringMenghasilkan URL yang dapat digunakan untuk mengedit respons yang telah dikirim.
getGradableItemResponses()ItemResponse[]Mendapatkan semua respons item yang dimuat dalam respons formulir, dalam urutan yang sama dengan kemunculan item dalam bentuk.
getGradableResponseForItem(item)ItemResponseMendapatkan respons item yang dimuat dalam respons formulir untuk item tertentu.
getId()StringMendapatkan ID respons formulir.
getItemResponses()ItemResponse[]Mendapatkan semua respons item yang dimuat dalam respons formulir, dalam urutan yang sama dengan kemunculan item dalam bentuk.
getRespondentEmail()StringMendapatkan alamat email orang yang mengirimkan respons, jika setelan Form.setCollectEmail(collect) diaktifkan.
getResponseForItem(item)ItemResponseMendapatkan respons item yang terdapat dalam respons formulir ini untuk item tertentu.
getTimestamp()DateMendapatkan stempel waktu untuk pengiriman respons formulir.
submit()FormResponseMengirim respons.
toPrefilledUrl()StringMenghasilkan URL untuk formulir yang jawabannya sudah diisi berdasarkan jawaban dalam respons formulir.
withItemGrade(gradedResponse)FormResponseMenambahkan nilai respons item yang diberikan ke respons formulir.
withItemResponse(response)FormResponseMenambahkan respons item yang diberikan ke respons formulir.

Dokumentasi mendetail

getEditResponseUrl()

Menghasilkan URL yang dapat digunakan untuk mengedit respons yang telah dikirim. Jika Setelan Form.setAllowResponseEdits(enabled) dinonaktifkan, link akan mengarah ke halaman yang menjelaskan bahwa pengeditan respons formulir dinonaktifkan. Siapa saja yang mengunjungi link dapat mengedit tersebut, meskipun mereka memerlukan akun dengan akses ke formulir tersebut jika setelan Form.setRequireLogin(requireLogin) diaktifkan. Jika Form.setCollectEmail(collect) diaktifkan, formulir akan mencatat alamat email pengguna yang mengedit respons alih-alih alamat email responden asli.

Untuk respons formulir yang dibuat oleh skrip, tetapi belum dikirim, metode ini akan menampilkan null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first form response.
const formResponse = form.getResponses()[0];

// Gets the edit URL for the first form response and logs it to the console.
const editUrl = formResponse.getEditResponseUrl();
console.log(editUrl);

Pulang pergi

String — URL untuk mengubah respons yang dikirimkan.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableItemResponses()

Mendapatkan semua respons item yang dimuat dalam respons formulir, dalam urutan yang sama dengan kemunculan item dalam bentuk. Metode ini berfungsi mirip dengan getItemResponses(), tetapi untuk memungkinkan penilaian jawaban yang tidak ada, metode ini akan tetap menampilkan ItemResponse jika Item yang sesuai dapat dinilai (yaitu memiliki nilai poin), bahkan jika tidak ada respons yang sebenarnya. Namun, jika Item tidak dapat diskalakan, metode ini mengecualikan item tersebut dari array yang ditampilkan.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Gets the item responses contained in each form response.
for (const formResponse of formResponses){
  const gradableItemsResponses = formResponse.getGradableItemResponses();

  // Logs the title and score for each item response to the console.
  for (const gradableItemsResponse of gradableItemsResponses) {
    console.log(`${gradableItemsResponse.getItem().getTitle()}
       score ${gradableItemsResponse.getScore()}`);
  }
}

Pulang pergi

ItemResponse[] — Array respons untuk setiap item pertanyaan dalam formulir yang respondennya dapat menerima skor.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableResponseForItem(item)

Mendapatkan respons item yang dimuat dalam respons formulir untuk item tertentu. Metode ini berfungsi mirip dengan getResponseForItem(item), tetapi untuk memungkinkan penilaian jawaban yang tidak ada, mengembalikan ItemResponse jika Item yang sesuai dapat dinilai (yaitu memiliki poin nilai), meskipun tidak ada respons yang sebenarnya. Namun, jika Item tidak dapat diskalakan, metode ini akan menampilkan null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Gets the item responses contained in a form response.
for (const formResponse of formResponses) {
  const formItemResponses = formResponse.getGradableItemResponses();

  // Logs the title and score for responses to the first item of the form.
  const itemResponse = formResponse.getGradableResponseForItem(formItemResponses[0].getItem());
  console.log(`${itemResponse.getItem().getTitle()} score ${itemResponse.getScore()}`);
}

Parameter

NamaJenisDeskripsi
itemItem

Pulang pergi

ItemResponse — Respons untuk item tertentu, atau null jika tidak ada dan item tidak dinilai.


getId()

Mendapatkan ID respons formulir. Metode ini menampilkan null jika respons formulir belum dikirimkan.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the form responses and logs the ID for each form response to the console.
for (const formResponse of formResponses) {
  console.log(`Response ID: ${formResponse.getId()}`);
}

Pulang pergi

String — ID respons formulir, atau null jika respons formulir belum diterima dikirimkan.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItemResponses()

Mendapatkan semua respons item yang dimuat dalam respons formulir, dalam urutan yang sama dengan kemunculan item dalam bentuk. Jika respons formulir tidak berisi respons untuk TextItem yang diberikan, DateItem, TimeItem, atau ParagraphTextItem, ItemResponse yang ditampilkan untuk item tersebut akan memiliki string kosong sebagai respons. Jika respons formulir menghilangkan untuk tipe item lainnya, metode ini mengecualikan item tersebut dari array yang ditampilkan.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the responses to the form.
const formResponses = form.getResponses();

// Iterates over the responses.
for (const formResponse of formResponses) {

  // Gets the item responses from each form response.
  const itemResponses = formResponse.getItemResponses();

  // Iterates over the item responses.
  for (const itemResponse of itemResponses) {

    // Logs the items' questions and responses to the console.
    console.log(`Response to the question '${itemResponse.getItem().getTitle()}' was
      '${itemResponse.getResponse()}'`);
  }
}

Pulang pergi

ItemResponse[] — Array respons untuk setiap item pertanyaan dalam formulir yang respondennya memberikan jawaban.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getRespondentEmail()

Mendapatkan alamat email orang yang mengirimkan respons, jika setelan Form.setCollectEmail(collect) diaktifkan.

Untuk respons formulir yang dibuat oleh skrip, tetapi belum dikirim, metode ini akan menampilkan null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs each respondent's email to the console.
// To collect respondent emails, ensure that Form.setCollectEmail(collect) is set to true.
for (const formResponse of formResponses) {
  console.log(`Respondent Email: ${formResponse.getRespondentEmail()}`);
}

Pulang pergi

String — Alamat email orang yang mengirimkan respons ini, jika tersedia, atau null jika skrip membuat respons ini tetapi belum mengirimkannya.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getResponseForItem(item)

Mendapatkan respons item yang terdapat dalam respons formulir ini untuk item tertentu.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first item on the form.
const item = form.getItems()[0];

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs each response to the first item to the console.
for (const formResponse of formResponses) {
  const itemResponse = formResponse.getResponseForItem(item);
  console.log(itemResponse.getResponse());
}

Parameter

NamaJenisDeskripsi
itemItem

Pulang pergi

ItemResponse — Respons untuk item tertentu, atau null jika tidak ada.


getTimestamp()

Mendapatkan stempel waktu untuk pengiriman respons formulir.

Untuk respons formulir yang dibuat oleh skrip, tetapi belum dikirim, metode ini akan menampilkan null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs the timestamp of each response to the console.
for (const formResponse of formResponses) {
  console.log(`Timestamp: ${formResponse.getTimestamp()}`);
}

Pulang pergi

Date — Stempel waktu saat respons ini dikirimkan, atau null jika skrip membuat respons ini tetapi belum mengirimkannya.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

submit()

Mengirim respons. Menampilkan pengecualian pembuatan skrip jika respons telah dikirim.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Creates an empty response for the form.
const formResponse = form.createResponse();

// Submits an empty response.
formResponse.submit();

Pulang pergi

FormResponse — Respons yang baru dibuat dan disimpan ke penyimpanan respons formulir.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

toPrefilledUrl()

Menghasilkan URL untuk formulir yang jawabannya sudah diisi berdasarkan jawaban dalam respons formulir.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first form response.
const formResponse = form.getResponses()[0];

// Generates and logs the URL of a pre-filled form response based on the answers
// of the first form response.
const prefilledUrl = formResponse.toPrefilledUrl();
console.log(prefilledUrl);

Pulang pergi

String — URL untuk formulir dengan jawaban yang sudah diisi sebelumnya.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemGrade(gradedResponse)

Menambahkan nilai respons item yang diberikan ke respons formulir. Metode ini hanya berlaku untuk formulir respons yang telah dikirimkan dan hanya memengaruhi nilai yang disimpan setelah dikirimkan. Metode ini juga hanya memperbarui nilai respons item; hal ini tidak memengaruhi respons yang sebenarnya (sejak respons telah dikirim). Jika metode ini dipanggil beberapa kali untuk item yang sama, hanya nilai terakhir yang dipertahankan. Jika ItemResponse berisi tidak ada nilai, metode ini akan menghapus nilai item.

// Programmatically award partial credit for a given response
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var formResponses = form.getResponses();
var formItems = form.getItems();
for (var i = 0; i < formResponses.length; i++) {
  var formResponse = formResponses[i];
  for (var j = 0; j < formItems.length; j++) {
    var item = formItems[j];
    var points = item.asMultipleChoiceItem().getPoints();
    var itemResponse = formResponse.getGradableResponseForItem(item);
    Logger.log('Award half credit for answers containing the word "Kennedy"');
    var answer = itemResponse.getResponse();
    if (answer != null && answer.includes('Kennedy')) {
      itemResponse.setScore(points / 2);
      formResponse.withItemGrade(itemResponse);
    }
  }
}
form.submitGrades(formResponses);

Parameter

NamaJenisDeskripsi
gradedResponseItemResponse

Pulang pergi

FormResponseFormResponse ini, untuk perantai

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemResponse(response)

Menambahkan respons item yang diberikan ke respons formulir. Metode ini hanya berlaku untuk respons formulir bahwa skrip telah dibuat tetapi belum dikirimkan; hal itu tidak dapat mempengaruhi respons yang disimpan. Jika ini dipanggil beberapa kali untuk item yang sama, hanya respons item terakhir yang dipertahankan.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Creates a response for the form.
const formResponse = form.createResponse();

// Appends a checkbox item to the form.
const item = form.addCheckboxItem();

// Sets the title of the item to 'Which items are ice cream flavors?'
item.setTitle('Which items are ice cream flavors?');

// Sets choices for the item.
item.setChoices([
item.createChoice('Vanilla'),
item.createChoice('Strawberry'),
item.createChoice('Brick')
]);

// Creates a response for the item.
const response = item.createResponse(['Vanilla', 'Strawberry']);

// Adds the item response to the form response.
formResponse.withItemResponse(response);

// Submits the form response.
formResponse.submit();

Parameter

NamaJenisDeskripsi
responseItemResponse

Pulang pergi

FormResponseFormResponse ini, untuk perantaian.

Otorisasi

Skrip yang menggunakan metode ini memerlukan otorisasi dengan satu atau beberapa cakupan berikut:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms