フォームへのコンテンツの追加や、設定、メタデータ、コンテンツの更新を行うには、batchUpdate()
メソッドを使用します。このメソッドは変更をまとめてグループ化し、1 つのリクエストが失敗した場合、他の(依存する可能性のある)変更は書き込まれません。
batchUpdate()
メソッドはレスポンスの本文を返します。レスポンスの本文には各リクエストに対するレスポンスが含まれます。各レスポンスは、対応するリクエストと同じインデックスを占有します。該当するレスポンスがないリクエストの場合、そのインデックスのレスポンスは空になります。
始める前に
このページの作業を行う前に、次の作業を行います。
- 先行ユーザー プログラムの手順で認可、認証、認証情報の設定を完了します。
メタデータ、設定、アイテムを更新する
次の例は、フォームのメタデータを更新する方法を示していますが、コンテンツと設定の構造は同じです。updateFormInfo
ではなく updateItem
リクエストまたは updateSettings
リクエストを使用します。リクエストごとに、変更するフィールドの名前と更新された値を指定します。また、指定したフィールドのみへの変更を許可する updateMask
値も指定します。
REST
フォームの説明を更新するには、フォーム ID と更新された説明の値を指定して batchUpdate()
メソッドを呼び出します。
リクエストの本文の例
"requests": [{
"updateFormInfo": {
"info": {
"description": "Please complete this quiz based on this week's readings for class."
},
"updateMask": "description"
}
}]
Python
Node.js
1 つのアイテムを追加する
次の例は、フォームに新しいコンテンツを追加する方法を示しています。新しいコンテンツを追加するときは、新しいコンテンツを挿入するインデックスの場所を指定する必要があります。たとえば、インデックス 0
を持つロケーションは、フォームの先頭にコンテンツを挿入します。
REST
フォームにアイテムを追加するには、フォーム ID、アイテムの情報、必要な場所を指定して batchUpdate()
メソッドを呼び出します。
リクエストの本文の例
"requests": [{
"createItem": {
"item": {
"title": "Homework video",
"description": "Quizzes in Google Forms",
"videoItem": {
"video": {
"youtubeUri": "https://www.youtube.com/watch?v=Lt5HqPvM-eI"
}
}},
"location": {
"index": 0
}
}]
Python
Node.js
注文をリクエストする
batchUpdate()
メソッドは、createItem
や updateItem
などのサブリクエストの配列を受け入れます。サブリクエストは、指定された順に 1 つずつ検証されます。
例: batchUpdate
リクエストには、2 つの createItem
サブリクエストを含む requests
配列があります。サブリクエスト A には location.index
0、サブリクエスト B には location.index
1 が含まれます。requests
配列が [A, B] の場合、batchUpdate
は成功します。配列が [B, A] の場合、batchUpdate
は失敗します。これは、フォームにインデックス 0 の項目がすでに含まれていない限り、location.index
1 は有効ではないためです。