REST Resource: forms

資源:表單

Google 表單文件。您可以透過雲端硬碟建立表單,如要刪除表單或變更表單的存取權保護機制,請使用 Drive API

JSON 表示法
{
  "formId": string,
  "info": {
    object (Info)
  },
  "settings": {
    object (FormSettings)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "revisionId": string,
  "responderUri": string,
  "linkedSheetId": string
}
欄位
formId

string

僅供輸出。表單 ID。

info

object (Info)

必要欄位。表單標題和說明。

settings

object (FormSettings)

表單設定。必須使用 UpdateSettingsRequest 更新;系統會在 forms.createUpdateFormInfoRequest 期間忽略該屬性。

items[]

object (Item)

必要欄位。表單項目清單,可包含區段標題、問題、嵌入媒體等。

revisionId

string

僅供輸出。表單修訂版本 ID。用於更新要求中的 WriteControl,可識別基於變更的修訂版本。

修訂版本 ID 的格式可能會隨時間而改變,因此請不透明地處理。傳回的修訂版本 ID 只有在系統傳回後 24 小時內有效,而且無法由其他使用者共用。如果兩次呼叫之間的修訂版本 ID 維持不變,表單就不會變更。相反地,如果 ID 已變更 (適用於相同表單和使用者),通常表示表單已經更新。但是 ID 變更也可能是由內部因素 (例如 ID 格式變更) 所造成。

responderUri

string

僅供輸出。要與作答者共用的表單 URI。系統會隨即開啟一個頁面,讓使用者提交回應,但無法編輯問題。

linkedSheetId

string

僅供輸出。用來累積這份表單回覆資訊的已連結 Google 試算表 ID (如果有這類工作表的話)。

資訊

表單的一般資訊。

JSON 表示法
{
  "title": string,
  "documentTitle": string,
  "description": string
}
欄位
title

string

必要欄位。作答者可查看的表單標題。

documentTitle

string

僅供輸出。在雲端硬碟中顯示的文件標題。如果 Info.title 為空白,documentTitle 可能會顯示在 Google 表單 UI 中的位置,且作答者可以查看。documentTitle 可在建立時設定,但批次更新要求無法修改。如要透過程式更新 documentTitle,請使用 Google Drive API

description

string

表單的說明。

FormSettings

表單設定。

JSON 表示法
{
  "quizSettings": {
    object (QuizSettings)
  }
}
欄位
quizSettings

object (QuizSettings)

測驗表單和評分相關設定。

QuizSettings

測驗表單和評分相關設定。這些項目必須使用 UpdateSettingsRequest 進行更新。

JSON 表示法
{
  "isQuiz": boolean
}
欄位
isQuiz

boolean

指出這份表單是否為測驗。如果設為 true,則會根據 Grading 題為回應評分。如果設為 False,系統會刪除所有問題 Grading

項目

表單中的單一項目。kind 用於定義其項目類型。

JSON 表示法
{
  "itemId": string,
  "title": string,
  "description": string,

  // Union field kind can be only one of the following:
  "questionItem": {
    object (QuestionItem)
  },
  "questionGroupItem": {
    object (QuestionGroupItem)
  },
  "pageBreakItem": {
    object (PageBreakItem)
  },
  "textItem": {
    object (TextItem)
  },
  "imageItem": {
    object (ImageItem)
  },
  "videoItem": {
    object (VideoItem)
  }
  // End of list of possible types for union field kind.
}
欄位
itemId

string

項目 ID。

建立時即可提供 ID,但表單中不可重複使用這個 ID。如未提供,系統會指派新 ID。

title

string

商品的名稱。

description

string

項目說明。

聯集欄位 kind。必要欄位。用於指定項目類型。kind 只能採用下列其中一種設定:
questionItem

object (QuestionItem)

向使用者提問。

questionGroupItem

object (QuestionGroupItem)

提供單一主要提示,讓使用者提出一或多個問題。

pageBreakItem

object (PageBreakItem)

以標題建立新頁面。

textItem

object (TextItem)

在頁面上顯示標題和說明。

imageItem

object (ImageItem)

在頁面上顯示圖片。

videoItem

object (VideoItem)

在頁面上顯示影片。

QuestionItem

包含單一問題的表單項目。

JSON 表示法
{
  "question": {
    object (Question)
  },
  "image": {
    object (Image)
  }
}
欄位
question

object (Question)

必要欄位。顯示的問題。

image

object (Image)

問題中顯示的圖片。

問題

如有任何問題,確切的問題類型可透過 kind 來辨識。

JSON 表示法
{
  "questionId": string,
  "required": boolean,
  "grading": {
    object (Grading)
  },

  // Union field kind can be only one of the following:
  "choiceQuestion": {
    object (ChoiceQuestion)
  },
  "textQuestion": {
    object (TextQuestion)
  },
  "scaleQuestion": {
    object (ScaleQuestion)
  },
  "dateQuestion": {
    object (DateQuestion)
  },
  "timeQuestion": {
    object (TimeQuestion)
  },
  "fileUploadQuestion": {
    object (FileUploadQuestion)
  },
  "rowQuestion": {
    object (RowQuestion)
  }
  // End of list of possible types for union field kind.
}
欄位
questionId

string

唯讀。問題 ID。

建立時即可提供 ID,但表單中不可重複使用這個 ID。如未提供,系統會指派新 ID。

required

boolean

是否必須回答問題,作答者才能提交回覆。

grading

object (Grading)

題目的評分設定。

聯集欄位 kind。必要欄位。提供給作答者的問題類型。kind 只能是下列其中一項:
choiceQuestion

object (ChoiceQuestion)

作答者可從一組預先定義的選項中選擇。

textQuestion

object (TextQuestion)

作答者可輸入任意形式的回覆。

scaleQuestion

object (ScaleQuestion)

作答者可以從範圍內選擇一個數字。

dateQuestion

object (DateQuestion)

作答者可以輸入日期。

timeQuestion

object (TimeQuestion)

作答者可以輸入時間。

fileUploadQuestion

object (FileUploadQuestion)

作答者可以上傳一或多個檔案。

rowQuestion

object (RowQuestion)

QuestionGroupItem 的資料列。

ChoiceQuestion

圓形按鈕/核取方塊/下拉式選單問題。

JSON 表示法
{
  "type": enum (ChoiceType),
  "options": [
    {
      object (Option)
    }
  ],
  "shuffle": boolean
}
欄位
type

enum (ChoiceType)

必要欄位。選擇題類型。

options[]

object (Option)

必要欄位。作答者必須選擇的選項清單。

shuffle

boolean

是否應針對不同的測驗題目隨機顯示選項。這通常用來避免作弊,避免某些作答者在查看其他作答者的螢幕畫面時作弊,或解決問卷調查中的偏誤,也許是因為問卷調查的選擇一律在最前面或最後優先顯示。

ChoiceType

選擇的類型。

列舉
CHOICE_TYPE_UNSPECIFIED 預設值。未使用。
RADIO 圓形按鈕:所有選項都會向使用者顯示,只能選擇其中一個。
CHECKBOX 核取方塊:所有選項都會向使用者顯示,可供他們挑選任意數量的。
DROP_DOWN 下拉式選單:這個選項只會在需要時向使用者顯示,否則只會顯示目前的選項。只能選取一個選項。

選項

選項問題的選項。

JSON 表示法
{
  "value": string,
  "image": {
    object (Image)
  },
  "isOther": boolean,

  // Union field go_to_section can be only one of the following:
  "goToAction": enum (GoToAction),
  "goToSectionId": string
  // End of list of possible types for union field go_to_section.
}
欄位
value

string

必要欄位。向使用者顯示的選項。

image

object (Image)

顯示圖片選項。

isOther

boolean

選項是否為「其他」。目前僅適用於 RADIOCHECKBOX 選項類型,但不適用於 QuestionGroupItem

聯集欄位 go_to_section。如果選取這個選項,請前往哪個部分。目前僅適用於 RADIOSELECT 選項類型,但不適用於 QuestionGroupItemgo_to_section 只能採用下列其中一種設定:
goToAction

enum (GoToAction)

版面導覽類型。

goToSectionId

string

區段標題的項目 ID。

GoToAction

區段導覽的常數。

列舉
GO_TO_ACTION_UNSPECIFIED 預設值。未使用。
NEXT_SECTION 前往下一節。
RESTART_FORM 返回表單開頭。
SUBMIT_FORM 立即提交表單。

圖片

代表圖片的資料。

JSON 表示法
{
  "contentUri": string,
  "altText": string,
  "properties": {
    object (MediaProperties)
  },

  // Union field image_source can be only one of the following:
  "sourceUri": string
  // End of list of possible types for union field image_source.
}
欄位
contentUri

string

僅供輸出。可用來下載圖片的 URI;此為限時有效。

altText

string

疊加顯示的圖片說明,螢幕閱讀器會朗讀圖片。

properties

object (MediaProperties)

圖片的屬性。

聯集欄位 image_source。圖片來源的類型。建立新圖片時,只能設定一個圖片來源欄位。image_source 只能是下列其中一項:
sourceUri

string

僅限輸入。來源 URI 是用於插入圖片的 URI。擷取時,來源 URI 可以空白。

MediaProperties

媒體的屬性。

JSON 表示法
{
  "alignment": enum (Alignment),
  "width": integer
}
欄位
alignment

enum (Alignment)

媒體的位置。

width

integer

媒體的寬度 (以像素為單位)。當顯示媒體時,該媒體會縮放為這個值較小的值或顯示的表單寬度。並保留媒體的原始長寬比。如果在將媒體加入表單時未指定寬度,則該寬度會設為媒體來源的寬度。寬度必須介於 0 到 740 (含) 之間。只有在更新媒體來源時,才能將寬度設為 0 或未指定。

對齊

對齊頁面。

列舉
ALIGNMENT_UNSPECIFIED 預設值。未使用。
LEFT 靠左對齊。
RIGHT 靠右對齊。
CENTER 中央。

TextQuestion

文字問題。

JSON 表示法
{
  "paragraph": boolean
}
欄位
paragraph

boolean

問題是否為段落題。如果答案為否,那問題就是簡單的文字問題。

ScaleQuestion

體重計問題。使用者有多種數值範圍可供選擇。

JSON 表示法
{
  "low": integer,
  "high": integer,
  "lowLabel": string,
  "highLabel": string
}
欄位
low

integer

必要欄位。體重計的可能值。

high

integer

必要欄位。體重計的最高可能值。

lowLabel

string

要顯示的標籤,說明體重計上最低點。

highLabel

string

要顯示的標籤,說明體重計上的最高點。

DateQuestion

日期題目。日期問題預設為「月 + 日」。

JSON 表示法
{
  "includeTime": boolean,
  "includeYear": boolean
}
欄位
includeTime

boolean

是否在問題中加入時間。

includeYear

boolean

是否在問題中加入年份。

TimeQuestion

時間題。

JSON 表示法
{
  "duration": boolean
}
欄位
duration

boolean

如果問題關於經過時間,則為 true。否則,就是某個時段。

FileUploadQuestion

一個檔案上傳問題。API 目前不支援建立檔案上傳問題。

JSON 表示法
{
  "folderId": string,
  "types": [
    enum (FileType)
  ],
  "maxFiles": integer,
  "maxFileSize": string
}
欄位
folderId

string

必要欄位。儲存上傳檔案的雲端硬碟資料夾 ID。

types[]

enum (FileType)

這個問題接受的檔案類型。

maxFiles

integer

單次回覆中可為這個問題上傳的檔案數量上限。

maxFileSize

string (int64 format)

上傳至這個問題的單一檔案所允許的最大位元組數。

FileType

可上傳到檔案上傳問題的檔案類型。

列舉
FILE_TYPE_UNSPECIFIED 預設值。未使用。
ANY 沒有類型限制。
DOCUMENT Google 文件。
PRESENTATION Google 簡報檔案。
SPREADSHEET Google 試算表。
DRAWING 一張繪圖。
PDF PDF。
IMAGE 圖片。
VIDEO 影片。
AUDIO 音訊檔案。

RowQuestion

設定問題群組的問題設定。

JSON 表示法
{
  "title": string
}
欄位
title

string

必要欄位。QuestionGroupItem 中單一列的標題。

成績

單一問題的評分

JSON 表示法
{
  "pointValue": integer,
  "correctAnswers": {
    object (CorrectAnswers)
  },
  "whenRight": {
    object (Feedback)
  },
  "whenWrong": {
    object (Feedback)
  },
  "generalFeedback": {
    object (Feedback)
  }
}
欄位
pointValue

integer

必要欄位。作答者針對正確答案可自動獲得的分數上限。不得為負數。

correctAnswers

object (CorrectAnswers)

必要欄位。題目的答案。系統會自動根據這個欄位為回覆評分。

whenRight

object (Feedback)

顯示正確答案的意見回饋。只能為已提供正確答案的選擇題設定這項意見回饋。

whenWrong

object (Feedback)

針對錯誤回應顯示的意見回饋。只能為已提供正確答案的選擇題設定這項意見回饋。

generalFeedback

object (Feedback)

顯示所有答案的意見回饋。這種做法通常用於簡答題,讓測驗擁有者在有機會正式批改答題前,迅速讓作答者瞭解答案是否正確。無法為自動評分的選擇題設定一般意見回饋。

CorrectAnswers

問題的答案。

JSON 表示法
{
  "answers": [
    {
      object (CorrectAnswer)
    }
  ]
}
欄位
answers[]

object (CorrectAnswer)

正確答案清單。系統可以根據這些答案自動為測驗回應評分。如果是單一值問題,只要回覆與這份清單中的任何值相符,就會標示為正確 (換句話說,可以有多個正確答案)。如果有多值 (CHECKBOX) 問題,只要回應內容與這份清單中的值完全相同,系統就會標示為正確。

CorrectAnswer

一個問題的單一正確答案。如果是多值 (CHECKBOX) 問題,可能需要多個 CorrectAnswer 來代表單一正確回應選項。

JSON 表示法
{
  "value": string
}
欄位
value

string

必要欄位。正確答案值。如要進一步瞭解各種值類型的格式設定,請參閱 TextAnswer.value 的說明文件。

QuestionGroupItem

定義包含多個問題分組的問題。

JSON 表示法
{
  "questions": [
    {
      object (Question)
    }
  ],
  "image": {
    object (Image)
  },

  // Union field kind can be only one of the following:
  "grid": {
    object (Grid)
  }
  // End of list of possible types for union field kind.
}
欄位
questions[]

object (Question)

必要欄位。屬於這個問題群組的問題清單。一個問題只能隸屬於一個群組。群組的 kind 可能會影響允許的問題類型。

image

object (Image)

問題群組中的特定問題上方所顯示的圖片。

聯集欄位 kind。必要欄位。問題群組類型,用於決定可使用的問題類型及顯示方式。kind 只能是下列其中一項:
grid

object (Grid)

問題群組是一個表格,內含包含相同選項的多選題。設定 grid 時,群組中的所有問題都必須是 row 種類。

格線

選項方格 (圓形按鈕或核取方塊),每列分別代表一個問題。每列都有相同的選項 (顯示為欄)。

JSON 表示法
{
  "columns": {
    object (ChoiceQuestion)
  },
  "shuffleQuestions": boolean
}
欄位
columns

object (ChoiceQuestion)

必要欄位。在格狀檢視畫面中每個問題所分享的選項。換句話說,資料欄的值。只能選擇「CHECK_BOX」和「RADIO」選項。

shuffleQuestions

boolean

如果設為 true,問題會隨機排序。換句話說,各列對每位作答者的列數會有所不同。

PageBreakItem

分頁符號。新頁面的頂端會顯示這個項目的標題和說明。

TextItem

文字項目。

ImageItem

包含圖片的項目。

JSON 表示法
{
  "image": {
    object (Image)
  }
}
欄位
image

object (Image)

必要欄位。商品中顯示的圖片。

VideoItem

包含影片的項目。

JSON 表示法
{
  "video": {
    object (Video)
  },
  "caption": string
}
欄位
video

object (Video)

必要欄位。商品中顯示的影片。

caption

string

顯示在影片下方的文字。

影片

代表影片的資料。

JSON 表示法
{
  "youtubeUri": string,
  "properties": {
    object (MediaProperties)
  }
}
欄位
youtubeUri

string

必要欄位。YouTube URI。

properties

object (MediaProperties)

影片的屬性。

方法

batchUpdate

分批更新表單來變更表單。

create

使用要求中提供的表單訊息中的標題建立新表單。

get

取得表單。