Method: forms.batchUpdate

تغيير النموذج من خلال مجموعة من التعديلات

طلب HTTP

POST https://forms.googleapis.com/v1/forms/{formId}:batchUpdate

يستخدِم عنوان URL بنية تحويل ترميز gRPC.

مَعلمات المسار

المعلمات
formId

string

مطلوب. رقم تعريف النموذج

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

تمثيل JSON
{
  "includeFormInResponse": boolean,
  "requests": [
    {
      object (Request)
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
الحقول
includeFormInResponse

boolean

ما إذا كان سيتم عرض نسخة معدَّلة من النموذج في الردّ

requests[]

object (Request)

مطلوب. طلبات التعديل لهذه المجموعة.

writeControl

object (WriteControl)

يتيح التحكّم في طريقة تنفيذ طلبات الكتابة.

نص الاستجابة

استجابة لطلب BatchUpdateFormRequest.

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

تمثيل JSON
{
  "form": {
    object (Form)
  },
  "replies": [
    {
      object (Response)
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
الحقول
form

object (Form)

استنادًا إلى حقل الطلب المنطقي includeFormInResponse، يتمّ عرض نموذج يتضمّن جميع التعديلات/التغييرات المطبّقة أو لا يتمّ عرضه. وقد يكون هذا التاريخ لاحقًا من معرّف المراجعة الذي تم إنشاؤه من خلال هذه التغييرات.

replies[]

object (Response)

ردّ على التعديلات ويتم ربط هذه الطلبات بطلبات التعديل مباشرةً، على الرغم من أنّ الردود على بعض الطلبات قد تكون فارغة.

writeControl

object (WriteControl)

عنصر التحكّم في الكتابة المعدَّل بعد تطبيق الطلب

نطاقات التفويض

يتطلب أحد نطاقات OAuth التالية:

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file
  • https://www.googleapis.com/auth/forms.body

لمزيد من المعلومات، يمكنك الاطّلاع على دليل التفويض.

الطلب

أنواع طلبات التعديل التي يمكن إجراؤها

تمثيل JSON
{

  // Union field kind can be only one of the following:
  "updateFormInfo": {
    object (UpdateFormInfoRequest)
  },
  "updateSettings": {
    object (UpdateSettingsRequest)
  },
  "createItem": {
    object (CreateItemRequest)
  },
  "moveItem": {
    object (MoveItemRequest)
  },
  "deleteItem": {
    object (DeleteItemRequest)
  },
  "updateItem": {
    object (UpdateItemRequest)
  }
  // End of list of possible types for union field kind.
}
الحقول
حقل الربط kind نوع الطلب يمكن أن يكون kind واحدًا فقط مما يلي:
updateFormInfo

object (UpdateFormInfoRequest)

عدِّل معلومات النموذج.

updateSettings

object (UpdateSettingsRequest)

تعديل إعدادات النموذج

createItem

object (CreateItemRequest)

لإنشاء عنصر جديد.

moveItem

object (MoveItemRequest)

نقل عنصر إلى موقع محدّد

deleteItem

object (DeleteItemRequest)

حذف عنصر

updateItem

object (UpdateItemRequest)

تعديل عنصر

UpdateFormInfoRequest

عدِّل معلومات النموذج.

تمثيل JSON
{
  "info": {
    object (Info)
  },
  "updateMask": string
}
الحقول
info

object (Info)

المعلومات المطلوب تعديلها

updateMask

string (FieldMask format)

مطلوب. لا يتم تغيير سوى القيم المُسمّاة في هذا القناع. يجب تحديد حقل واحد على الأقل. يتم تضمين الجذر info ضمنيًا ولا يجب تحديده. يمكن استخدام رمز "*" واحد كاختصار لتعديل كل حقل.

هذه قائمة مفصولة بفواصل تتضمّن أسماء حقول مؤهَّلة بالكامل. مثال: "user.displayName,photo"

UpdateSettingsRequest

عدِّل FormSettings في النموذج.

تمثيل JSON
{
  "settings": {
    object (FormSettings)
  },
  "updateMask": string
}
الحقول
settings

object (FormSettings)

مطلوب. الإعدادات التي سيتم تعديلها

updateMask

string (FieldMask format)

مطلوب. لا يتم تغيير سوى القيم المُسمّاة في هذا القناع. يجب تحديد حقل واحد على الأقل. يتم تضمين الجذر settings ضمنيًا ولا يجب تحديده. يمكن استخدام رمز "*" واحد كاختصار لتعديل كل حقل.

هذه قائمة مفصولة بفواصل تتضمّن أسماء حقول مؤهَّلة بالكامل. مثال: "user.displayName,photo"

CreateItemRequest

أنشئ عنصرًا في نموذج.

تمثيل JSON
{
  "item": {
    object (Item)
  },
  "location": {
    object (Location)
  }
}
الحقول
item

object (Item)

مطلوب. العنصر المطلوب إنشاؤه

location

object (Location)

مطلوب. مكان وضع العنصر الجديد

الموقع الجغرافي

موقع جغرافي محدّد في نموذج

تمثيل JSON
{

  // Union field where can be only one of the following:
  "index": integer
  // End of list of possible types for union field where.
}
الحقول
حقل الربط where مطلوب. حدِّد موقعًا جغرافيًا في النموذج. يمكن أن يكون where واحدًا فقط مما يلي:
index

integer

فهرس عنصر في النموذج يجب أن يكون هذا ضمن النطاق

[0..N)

حيث يكون N هو عدد العناصر في النموذج.

MoveItemRequest

نقل عنصر في نموذج

تمثيل JSON
{
  "originalLocation": {
    object (Location)
  },
  "newLocation": {
    object (Location)
  }
}
الحقول
originalLocation

object (Location)

مطلوب. الموقع الجغرافي للعنصر الذي تريد نقله.

newLocation

object (Location)

مطلوب. الموقع الجغرافي الجديد للعنصر

DeleteItemRequest

حذف عنصر في نموذج

تمثيل JSON
{
  "location": {
    object (Location)
  }
}
الحقول
location

object (Location)

مطلوب. الموقع الجغرافي للعنصر المطلوب حذفه

UpdateItemRequest

تعديل عنصر في نموذج

تمثيل JSON
{
  "item": {
    object (Item)
  },
  "location": {
    object (Location)
  },
  "updateMask": string
}
الحقول
item

object (Item)

مطلوب. قيم جديدة للعنصر يُرجى العِلم أنّه يتم استخدام معرّفات السلع والأسئلة إذا تم تقديمها (وكانت متوفّرة في قناع الحقل). إذا كان المعرّف فارغًا (وفي قناع الحقل)، يتم إنشاء معرّف جديد. وهذا يعني أنّه يمكنك تعديل عنصر من خلال الحصول على النموذج من خلال forms.get، وتعديل نسختك المحلية من هذا العنصر على النحو الذي تريده، واستخدام UpdateItemRequest لإعادة كتابته، مع إبقاء المعرّفات متطابقة (أو عدم تضمينها في قناع الحقل).

location

object (Location)

مطلوب. الموقع الجغرافي الذي يحدِّد العنصر المطلوب تعديله.

updateMask

string (FieldMask format)

مطلوب. لا يتم تغيير سوى القيم المُسمّاة في هذا القناع.

هذه قائمة مفصولة بفواصل تتضمّن أسماء حقول مؤهَّلة بالكامل. مثال: "user.displayName,photo"

WriteControl

يتيح التحكّم في طريقة تنفيذ طلبات الكتابة.

تمثيل JSON
{

  // Union field control can be only one of the following:
  "requiredRevisionId": string,
  "targetRevisionId": string
  // End of list of possible types for union field control.
}
الحقول
حقل الربط control لتحديد نسخة النموذج التي سيتم تطبيق التغييرات منها، وطريقة تصرف الطلب إذا لم تكن هذه النسخة هي النسخة الحالية من النموذج. يمكن أن يكون control واحدًا فقط مما يلي:
requiredRevisionId

string

رقم تعريف المراجعة للنموذج الذي يتم تطبيق طلب الكتابة عليه. إذا لم تكن هذه هي أحدث نسخة من النموذج، لن تتم معالجة الطلب وسيظهر خطأ 400 "الطلب غير صالح".

targetRevisionId

string

رقم تعريف النسخة المعدَّلة المستهدَفة للنموذج الذي يتم تطبيق طلب الكتابة عليه.

إذا حدثت تغييرات بعد هذه النسخة المعدّلة، يتم تحويل التغييرات في طلب التعديل هذا وفقًا لهذه التغييرات. يؤدّي ذلك إلى إجراء مراجعة جديدة للنموذج تتضمّن التغييرات في الطلب والتغييرات التي تم إجراؤها في ما بين الطلب والمراجعة، مع حلّ الخادم للتغييرات المتضاربة.

لا يمكن استخدام رقم تعريف النسخة المستهدفة إلا للكتابة في الإصدارات الحديثة من النموذج. إذا كانت المراجعة المستهدَفة متأخرة جدًا عن المراجعة الأخيرة، لن تتم معالجة الطلب وسيظهر الخطأ 400 (خطأ طلب غير صالح). يمكن إعادة محاولة إرسال الطلب بعد قراءة أحدث إصدار من النموذج. في معظم الحالات، يظلّ رقم تعريف المراجعة المستهدَفة صالحًا لعدة دقائق بعد قراءته، ولكن قد تكون هذه الفترة أقصر في النماذج التي يتم تعديلها بشكل متكرّر.

الردّ

ردّ واحد من تحديث

تمثيل JSON
{

  // Union field kind can be only one of the following:
  "createItem": {
    object (CreateItemResponse)
  }
  // End of list of possible types for union field kind.
}
الحقول
حقل الربط kind نوع الردّ. يمكن أن يكون kind واحدًا فقط مما يلي:
createItem

object (CreateItemResponse)

نتيجة إنشاء عنصر

CreateItemResponse

نتيجة إنشاء عنصر

تمثيل JSON
{
  "itemId": string,
  "questionId": [
    string
  ]
}
الحقول
itemId

string

معرّف العنصر الذي تم إنشاؤه.

questionId[]

string

معرّف السؤال الذي تم إنشاؤه كجزء من هذا العنصر، وبالنسبة إلى مجموعة أسئلة، يتم إدراج معرّفات جميع الأسئلة التي تم إنشاؤها لهذا العنصر.