REST Resource: forms

リソース: Form

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 が空の場合、Google フォーム UI のその場所に documentTitle が表示され、回答者に表示されることがあります。documentTitle は作成時に設定できますが、batchUpdate リクエストで変更することはできません。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 がすべて削除されます。

項目

フォームの 1 つの項目。kind はアイテムの種類を定義します。

JSON 表現
{
  "itemId": string,
  "title": string,
  "description": string,

  "questionItem": {
    object (QuestionItem)
  },
  "questionGroupItem": {
    object (QuestionGroupItem)
  },
  "pageBreakItem": {
    object (PageBreakItem)
  },
  "textItem": {
    object (TextItem)
  },
  "imageItem": {
    object (ImageItem)
  },
  "videoItem": {
    object (VideoItem)
  }
}
フィールド
itemId

string

商品アイテム ID。

作成時に提供できますが、フォームですでに ID が使用されていないことを確認してください。指定しない場合は、新しい ID が割り当てられます。

title

string

商品アイテムのタイトル。

description

string

商品アイテムの説明です。

共用体フィールド kind。必須。このアイテムのタイプです。kind は次のいずれかになります。
questionItem

object (QuestionItem)

ユーザーに質問を投げかける。

questionGroupItem

object (QuestionGroupItem)

主要なプロンプトを 1 つ使用して、ユーザーに 1 つ以上の質問を投げかける。

pageBreakItem

object (PageBreakItem)

タイトル付きの新しいページを開きます。

textItem

object (TextItem)

ページにタイトルと説明を表示します。

imageItem

object (ImageItem)

ページに画像を表示します。

videoItem

object (VideoItem)

ページに動画を表示します。

QuestionItem

1 つの質問を含むフォーム アイテム。

JSON 表現
{
  "question": {
    object (Question)
  },
  "image": {
    object (Image)
  }
}
フィールド
question

object (Question)

必須。表示されている質問。

image

object (Image)

質問内に表示される画像。

質問

どんなことでも。質問の具体的な種類は kind でわかります。

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

  "choiceQuestion": {
    object (ChoiceQuestion)
  },
  "textQuestion": {
    object (TextQuestion)
  },
  "scaleQuestion": {
    object (ScaleQuestion)
  },
  "dateQuestion": {
    object (DateQuestion)
  },
  "timeQuestion": {
    object (TimeQuestion)
  },
  "fileUploadQuestion": {
    object (FileUploadQuestion)
  },
  "rowQuestion": {
    object (RowQuestion)
  }
}
フィールド
questionId

string

読み取り専用。質問 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)

回答者は 1 つ以上のファイルをアップロードできます。

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 ラジオボタン: すべての選択肢がユーザーに表示され、ユーザーは 1 つのみを選択できます。
CHECKBOX チェックボックス: すべての選択肢が表示され、ユーザーはいくつでも選択できます。
DROP_DOWN プルダウン メニュー: 選択肢はオンデマンドでのみユーザーに表示されます。それ以外の場合は、現在の選択肢のみが表示されます。選択できるオプションは 1 つのみです。

オプション

選択式の質問のオプション。

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

  "goToAction": enum (GoToAction),
  "goToSectionId": string
}
フィールド
value

string

必須。ユーザーに提示される選択肢。

image

object (Image)

画像をオプションとして表示します。

isOther

boolean

オプションが「その他」かどうかを指定します。現在、RADIOCHECKBOX の選択肢タイプにのみ適用されますが、QuestionGroupItem では使用できません。

共用体フィールド go_to_section。このオプションを選択した場合に移動するセクション。現在、RADIOSELECT の選択肢タイプにのみ適用されますが、QuestionGroupItem では使用できません。go_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)
  },
  "sourceUri": string
}
フィールド
contentUri

string

出力専用。画像をダウンロードできる URI。こちらは期間限定です。

altText

string

カーソルを合わせたときに表示され、スクリーン リーダーで読み上げられる画像の説明です。

properties

object (MediaProperties)

画像のプロパティ。

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。それ以外の場合は、ほぼ 1 日の時間帯です。

FileUploadQuestion

ファイルのアップロードに関する質問。この API では現在、ファイル アップロードの質問の作成はサポートされていません。

JSON 表現
{
  "folderId": string,
  "types": [
    enum (FileType)
  ],
  "maxFiles": integer,
  "maxFileSize": string
}
フィールド
folderId

string

必須。アップロードされたファイルが保存されているドライブ フォルダの ID。

types[]

enum (FileType)

この質問で受け付けられるファイル形式。

maxFiles

integer

1 つの回答で、この質問に対してアップロードできるファイルの最大数。

maxFileSize

string (int64 format)

この質問にアップロードされる 1 つのファイルで許容される最大バイト数。

FileType

ファイルのアップロードが必要な質問にアップロードできるファイル形式。

列挙型
FILE_TYPE_UNSPECIFIED デフォルト値。未使用。
ANY タイプに制限はありません。
DOCUMENT Google ドキュメントのドキュメント。
PRESENTATION Google スライドのプレゼンテーション。
SPREADSHEET Google スプレッドシート。
DRAWING 図形描画。
PDF PDF
IMAGE 画像。
VIDEO 動画。
AUDIO 音声ファイル。

RowQuestion

質問グループに属する質問の設定。

JSON 表現
{
  "title": string
}
フィールド
title

string

必須。QuestionGroupItem 内の 1 行のタイトル。

採点

単一質問の採点

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

質問に対する 1 つの正解。複数の値(CHECKBOX)の質問の場合、1 つの正解の選択肢を表すために複数の CorrectAnswer が必要になる場合があります。

JSON 表現
{
  "value": string
}
フィールド
value

string

必須。正解値。さまざまな値の型の形式について詳しくは、TextAnswer.value のドキュメントをご覧ください。

QuestionGroupItem

グループ化された複数の質問で構成される質問を定義します。

JSON 表現
{
  "questions": [
    {
      object (Question)
    }
  ],
  "image": {
    object (Image)
  },
  "grid": {
    object (Grid)
  }
}
フィールド
questions[]

object (Question)

必須。この質問グループに属する質問のリスト。質問は 1 つのグループにのみ属する必要があります。グループの kind は、許可される質問の種類に影響する可能性があります。

image

object (Image)

特定の質問の上にある質問グループ内に表示される画像。

grid

object (Grid)

質問グループは、同じ選択肢を共有する多肢選択式の質問の行からなるグリッドです。grid が設定されている場合、グループ内のすべての質問の種類は row である必要があります。

グリッド

選択肢のグリッド(ラジオボタンまたはチェックボックス)。各行が個別の質問を構成するものです。各行には同じ選択肢があり、列として表示されます。

JSON 表現
{
  "columns": {
    object (ChoiceQuestion)
  },
  "shuffleQuestions": boolean
}
フィールド
columns

object (ChoiceQuestion)

必須。グリッド内の各質問で共有される選択肢。つまり、列の値です。CHECK_BOXRADIO の選択肢のみを指定できます。

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

フォームを取得します。