2
2

[Google Forms API(V1)] GoogleフォームとFormクラス

Posted at

Googleフォームを生成したり、情報を取得する際に使用する
com.google.api.services.forms.v1.model.Formクラス
と実際のGoogleフォームのUIを関連づけました。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Forms API(V1)] JavaでForms APIを使う
を参照ください。

No 目次
1 フォーム
1 フォームのタイトルと説明
2 質問
1 質問を追加、質問をインポート
2 ユーザーへ複数の質問
3 タイトルと説明を追加
4 画像を追加
5 動画を追加
6 セクションを追加
7 共通
3 設定
1 テストにする

Form

メソッド パラメータ 説明
formId String 【取得のみ】フォームID
revisionId String 【取得のみ】フォームのリビジョンID
responderUri String 【取得のみ】回答者と共有するフォームURI
linkedSheetId String 【取得のみ】GoogleスプレッドシートのファイルID
UI:[回答] -> [スプレットシートにリンク]
info Info 【必須】フォームのタイトル
items List<Item> 【必須】フォームの質問項目のリスト
settings FormSettings フォームの設定

1. フォーム

1.1. フォームのタイトルと説明

回答画面 設定画面

Info

メソッド パラメータ 説明
title String 【必須】フォームのタイトル
description String フォームの説明
documentTitle String ファイル名(ファイルのタイトル)
フォーム生成時のみ設定可能

2. 質問

質問項目の右側に表示されるメニュー項目で分類しています。

メニュー項目 内容
質問を追加
質問をインポート
タイトルと説明を追加
画像を追加
動画を追加
セクションを追加

Item

メソッド パラメータ 説明
itemId String 質問ID
title String 質問のタイトル
description String 質問の説明
UI:[](右下メニュー) -> [説明]
questionItem QuestionItem 2.1. 質問を追加、質問をインポート
questionGroupItem QuestionGroupItem 2.2. ユーザーへ複数の質問
textItem TextItem 2.3. タイトルと説明を追加
imageItem ImageItem 2.4. 画像を追加
videoItem VideoItem 2.5. 動画を追加
pageBreakItem PageBreakItem 2.6. セクションを追加

2.1. 質問を追加、質問をインポート

メニュー項目 回答画面 設定画面
記述式
段落
ラジオボタン
チェックボックス
プルダウン
ファイルのアップロード
均等目盛
選択式
(グリッド)
2.2. ユーザーへ複数の質問
チェックボックス
(グリッド)
2.2. ユーザーへ複数の質問
日付
時刻

QuestionItem

メソッド パラメータ 説明
question Question 【必須】質問
image Image 質問内に表示される画像
UI:[] -> [画像の挿入]

Question

メソッド パラメータ 説明
questionId String 【取得のみ】質問ID
required Boolean 必須の解答か
UI:[]
grading Grading 解答集の設定
UI:[]
textQuestion TextQuestion ・記述式
・段落
の質問
choiceQuestion ChoiceQuestion ・ラジオボタン
・チェックボックス
・プルダウン
の質問
fileUploadQuestion FileUploadQuestion ・ファイルのアップロード
の質問
acaleQuestion ScaleQuestion ・均等目盛
の質問
rowQuestion RowQuestion ・選択式(グリッド)
・チェックボックス(グリッド)
の質問
sateQuestion DateQuestion ・日付
の質問
timeQuestion TimeQuestion ・時刻
の質問

Grading

メソッド パラメータ 説明
pointValue Integer 【必須】正解の場合に獲得できる点数
UI:[点数]
correctAnswers CorrectAnswers 【必須】問題の解答集
whenRight Feedback 正解の場合に表示されるフィードバック
正解/不正解がある場合のみ
UI:[回答に対するフィードバックを追加] -> [正解]
whenWrong Feedback 不正解の場合に表示されるフィードバック
正解/不正解がある場合のみ
UI:[回答に対するフィードバックを追加] -> [不正解]
generalFeedback Feedback 回答に対して表示されるフィードバック
正解/不正解がない場合のみ
UI:[回答に対するフィードバックを追加]

フィードバックの設定

各メニューに対するフィードバックの有無、正解/不正解の有無を下記一覧に示します。
フィーロバックが有り(o)で、正解/不正解が無し(x)の場合、
フィードバックの入力欄が1つのみであることを示します。

メニュー項目 フィードバック 正解/不正解
記述式 o x
段落 o x
ラジオボタン o o
チェックボックス o o
プルダウン o o
ファイルのアップロード o x
均等目盛 o x
選択式(グリッド) x x
チェックボックス(グリッド) x x
日付 o x
時刻 o x

CorrectAnswers

メソッド パラメータ 説明
answers List<CorrectAnswer> 正解のリスト

CorrectAnswer

メソッド パラメータ 説明
value String 【必須】正解の値

Feedback

メソッド パラメータ 説明
text String 【必須】フィードバックの本文
material List<ExtraMaterial> フィードバックの一部として提供される追加情報

ExtraMaterial

メソッド パラメータ 説明
link TextLink 【必須(videoと一方のみ)】テキストのフィードバック
UI:[]
video VideoLink 【必須(linkと一方のみ)】動画フィードバック
UI:[]

TextLink

メソッド パラメータ 説明
uri String 【必須】URI
UI:[リンク先]
displayText String 【必須】URIの表示テキスト
UI:[表示するテキスト]

VideoLink

メソッド パラメータ 説明
displayText String 【必須】リンクの表示テキスト
youtubeUri String 【必須】YouTube動画のURI

TextQuestion

メソッド パラメータ 説明
aragraph Boolean 段落形式か

ChoiceQuestion

メソッド パラメータ 説明
type ChoiceType(enum) 【必須】選択式の質問
options List<Option> 【必須】回答者が選択可能なリスト
shuffle Boolean クイズのインスタンスごとにオプションをランダムな順序で表示するか

ラジオボタン、チェックボックス、プルダウンのみ
UI:[](右下メニュー) -> [選択肢の順序をシャッフルする]

ChoiceType

定義値 説明
CHOICE_TYPE_UNSPECIFIED 未定義(デフォルト値)
RADIO ラジオボタン
CHECKBOX チェックボックス
DROP_DOWN プルダウンメニュー

Option

メソッド パラメータ 説明
value String 【必須】ユーザーに提示される選択肢
image Image オプション画像
UI: -> [画像の挿入]
isOther Boolean オプションが「その他」か
UI:[その他を追加]

FileUploadQuestion

メソッド パラメータ 説明
folderId String 【必須】ファイルを保存するGoogleDriveのフォルダID
types List<FileType(enum) 受け入れ可能なファイル形式
UI:[特定のファイル形式のみ許可]
maxFiles Integer アップロード可能なファイルの最大数
UI:[ファイルの最大数]
maxFileSize Long アップロード可能な最大バイト数
UI:[最大ファイルサイズ]

FileType

定義値 説明
FILE_TYPE_UNSPECIFIED 未定義(デフォルト値)
ANY タイプの制限無し
DOCUMENT Googleドキュメント
PRESENTATION Googleスライド
SPREADSHEET Googleスプレッドシート
DRAWING 図形描画
PDF PDF
IMAGE 画像
VIDEO 動画
AUDIO 音声

ScaleQuestion

メソッド パラメータ 説明
low Integer 【必須】スケールの最小値
high Integer 【必須】スケールの最大値
lowLabel String スケール最小値のラベル
highLabel String スケール最大値のラベル

RowQuestion

メソッド パラメータ 説明
title String 【必須】行のタイトル

DateQuestion

メソッド パラメータ 説明
includeTime Boolean 時刻を含めるか
UI:[](右下メニュー) -> [時刻を含める]
includeYear Boolean 年を含めるか
UI:[](右下メニュー) -> [年を含める]

TimeQuestion

メソッド パラメータ 説明
duration Boolean 経過時間に関する質問か
UI:[](右下メニュー) -> [時刻]or[経過時間]

2.2. ユーザーへ複数の質問

メニュー項目 回答画面 設定画面
選択式
(グリッド)
チェックボックス
(グリッド)

QuestionGroupItem

メソッド パラメータ 説明
questions List<Question> 【必須】質問リスト
image Image 質問内に表示される画像
UI:[] -> [画像の挿入]
grid Grid 【必須】質問の選択肢

Grid

メソッド パラメータ 説明
columns ChoiceQuestion 【必須】選択肢
shuffleQuestions Boolean 行をランダムに並べ替えるか
UI:[](右下メニュー) -> [行を並べ替える]

2.3. タイトルと説明を追加

回答画面 設定画面

TextItem

取得可能なもの無し(空)

2.4. 画像を追加

回答画面 設定画面

ImageItem

メソッド パラメータ 説明
image Image 【必須】アイテムに表示される画像

Image

メソッド パラメータ 説明
sourceUri String 【設定のみ】画像URI
contentUri String 【取得のみ】画像のダウンロードURI(一定期間のみ有効)
altText String カーソルを合わせたときに表示され、スクリーンリーダーによって読み上げられる画像の説明

2.4. 画像を追加の場合のみ
UI:[](右下メニュー) -> [マウスオーバーテキスト]
properties MediaProperties 画像のプロパティ

2.5. 動画を追加

回答画面 設定画面

VideoItem

メソッド パラメータ 説明
video Video 【必須】アイテムに表示される動画
caption String 動画の字幕

2.5. 動画を追加の場合のみ
UI:[](右下メニュー) -> [字幕]

Video

メソッド パラメータ 説明
youtubeUri String 【必須】YouTubeのURI
properties MediaProperties 動画のプロパティ

2.6. セクションを追加

回答画面 設定画面

PageBreakItem

取得可能なもの無し(空)

2.7. 共通

MediaProperties

メソッド 戻り値 説明
getAlignment Alignment(enum) 水平方向位置
getwidth Integer 幅(ピクセル単位)

Alignment

定義値 説明
LEFT 左揃え
RIGHT 右揃え
CENTER 中央揃え

正解の値

メニュー項目 内容
記述式 入力したテキスト
段落 入力したテキスト
ラジオボタン 選択した文字列
チェックボックス 選択した複数の文字列
プルダウン 選択した文字列
均等目盛 選択した番号を含む文字列
選択式(グリッド) 選択した文字列
チェックボックス(グリッド) 選択した複数の文字列
日付 月と日(MM-DD)
年を含む(YYYY-MM-DD)
時間を含む(MM-DD)
年と時間を含む(YYYY-MM-DD HH:MM)
時刻 時刻または期間が HH:MM 形式の文字列

3. 設定

GoogleフォームのUI上ではいろいろと設定ができますが、
APIでは「テストにする」のON/OFFしか用意されていないようです。。

3.1. テストにする

点数の割り当て、回答の設定、フィードバックの自動提供を可能にします。

FormSettings

メソッド パラメータ 説明
quizSettings QuizSettings テストのフォームと採点に関連する設定

QuizSettings

メソッド パラメータ 説明
isQuiz Boolean このフォームがクイズか


おしまい。。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2