لمنح صنّاع النماذج مزيدًا من التحكّم في تحديد المستخدمين الذين يمكنهم الردّ، نقدّم عناصر تحكّم دقيقة للمجيبين. ستظهر النماذج التي تم إنشاؤها باستخدام واجهة برمجة التطبيقات بعد 31 كانون الثاني (يناير) 2026 في حالة "غير منشور" تلقائيًا. لمزيد من المعلومات، يُرجى الاطّلاع على
تغييرات واجهة برمجة التطبيقات في "نماذج Google".
نظرة عامة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
واجهة برمجة تطبيقات "نماذج Google" هي واجهة RESTful تتيح لك إنشاء النماذج والاختبارات وتعديلها، واسترداد الردود على النماذج ودرجات الاختبارات، وإعداد مفاتيح إجابات الاختبارات مع ملاحظات تلقائية، وتلقّي إشعارات فورية. تشمل الاستخدامات الأكثر شيوعًا لهذه الواجهة المهام التالية:
- إنشاء نموذج أو اختبار
- نشر المجيبين وإدارتهم
- تعديل نموذج أو اختبار
- استرداد الردود من نموذج أو اختبار
- قراءة محتوى النموذج وبياناته الوصفية
- إعداد الإشعارات الفورية وتلقّيها
- في ما يلي قائمة بالمصطلحات الشائعة المستخدَمة في Forms API:
- النموذج
مستند "نماذج Google"، يتم إنشاؤه وتخزينه في Drive يتم تمثيل كل نموذج بمورد Form
، وله قيمة formId
فريدة تحتوي على أحرف أو أرقام أو واصلات أو شُرَط سفلية. يمكنك العثور على معرّف النموذج في عنوان URL لنموذج Google:
https://docs.google.com/forms/d/FORM_ID/edit
- اختبار
نوع معيّن من مستندات "نماذج Google" يتيح تقييم ردود النموذج استنادًا إلى مفتاح إجابة. لا يمكن إنشاء اختبار إلا باستخدام الطريقة batchUpdate()
لتعديل الإعداد isQuiz
في نموذج حالي إلى true
.
- وضع الدرجات
- قيمة النقاط ومفتاح الإجابة والملاحظات الخاصة بالسؤال، ويتم تطبيقها عندما تكون
isQuiz
هي true
. يتم تمثيلها من خلال مورد Grading
.
- الملاحظات
- ردّ يتم تقديمه إلى المستخدم النهائي عند الإجابة عن سؤال في اختبار،
ويتم تمثيله من خلال المورد
Feedback
.
- السلعة
تمثّل هذه السمة عنصرًا واحدًا في نموذج، ويتم تمثيله بواسطة مورد Item. Item
هو عنصر متكرّر يمكن أن يحتوي على قسم أو مجموعة أسئلة أو سؤال أو نص أو صورة أو فيديو.
- السؤال
سؤال واحد في النموذج، يتم تمثيله بواسطة المورد
Question
.
- مجموعة الأسئلة
مجموعة من الأسئلة التي تشترك في مجموعة الإجابات المحتملة نفسها (على سبيل المثال، شبكة من التقييمات من 1 إلى 5). يتم تمثيله بواسطة مورد
QuestionGroupItem
.
- Section
القسم هو طريقة لتقسيم نموذج إلى صفحات متعددة وإضافة منطق شرطي (مثل عرض أسئلة معيّنة فقط استنادًا إلى إجابات المستخدم). تتطابق الأقسام مع المورد
PageBreakItem
.
- الإجابة
تمثّل هذه السمة إجابة المستخدم النهائي عن سؤال، ويتم عرضها باستخدام المورد
Answer
. يتضمّن هذا الحقل معلومات الدرجة (إذا كانت متوفرة) والبيانات الوصفية ومحتوى الإجابة.
- الرد
تمثّل هذه السمة إرسال المستخدم النهائي لنموذج، وهي ممثّلة بمورد
FormResponse
.
- المشاهدة
مشغّل يتتبّع التغييرات في مخطط النموذج (مثل التعديلات على الأسئلة) أو عمليات إرسال الردود على النموذج، ويرسل إشعارًا فوريًا عند حدوث تغيير. يتم تمثيله من خلال مورد Watch
.
عند إدارة النماذج والاختبارات، قد يكون من الصعب فهم كيفية تحديد حقول مختلفة، لأنّ العديد من عناصر النموذج يمكن أن تكون متداخلة مع بعضها البعض بطرق متعددة. لمعرفة كيفية ربط التمثيل المرئي للنموذج بالحقول، ننصحك باستخدام واجهة المستخدم لإنشاء بعض الأمثلة على النماذج التي قد ينشئها تطبيقك. بعد ذلك، استرجِع ملف JSON المقابل باستخدام طريقة forms.get()
حتى تتمكّن من المقارنة. على سبيل المثال،
يتوافق هذا المثال على اختبار قصير
مع رمز JSON التالي:
{
"formId": "FORM_ID",
"info": {
"title": "Famous Black Women",
"description": "Please complete this quiz based off of this week's readings for class.",
"documentTitle": "API Example Quiz"
},
"settings": {
"quizSettings": {
"isQuiz": true
}
},
"revisionId": "00000021",
"responderUri": "https://docs.google.com/forms/d/e/1FAIpQLSd0iBLPh4suZoGW938EU1WIxzObQv_jXto0nT2U8HH2KsI5dg/viewform",
"items": [
{
"itemId": "5d9f9786",
"imageItem": {
"image": {
"contentUri": "DIRECT_URL",
"properties": {
"alignment": "LEFT"
}
}
}
},
{
"itemId": "72b30353",
"title": "Which African American woman authored \"I Know Why the Caged Bird Sings\"?",
"questionItem": {
"question": {
"questionId": "25405d4e",
"required": true,
"grading": {
"pointValue": 2,
"correctAnswers": {
"answers": [
{
"value": "Maya Angelou"
}
]
}
},
"choiceQuestion": {
"type": "RADIO",
"options": [
{
"value": "Maya Angelou"
},
{
"value": "bell hooks"
},
{
"value": "Alice Walker"
},
{
"value": "Roxane Gay"
}
]
}
}
}
},
{
"itemId": "0a4859c8",
"title": "Who was the first Dominican-American woman elected to state office?",
"questionItem": {
"question": {
"questionId": "37fff47a",
"grading": {
"pointValue": 2,
"correctAnswers": {
"answers": [
{
"value": "Grace Diaz"
}
]
}
},
"choiceQuestion": {
"type": "RADIO",
"options": [
{
"value": "Rosa Clemente"
},
{
"value": "Grace Diaz"
},
{
"value": "Juana Matias"
},
{
"value": "Sabrina Matos"
}
]
}
}
}
}
],
"publishSettings" : {
"isPublished": true,
"isAcceptingResponses": true
}
}
الخطوات التالية
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)"],[],["The Google Forms API facilitates creating, modifying, and retrieving data from forms and quizzes. Key actions include creating and updating forms/quizzes, retrieving responses, reading form content/metadata, and setting up push notifications. Quizzes can include grading, answer keys, and feedback. Forms consist of *Items*, like *Questions*, *Question Groups*, and *Sections*. User input is stored as *Answers* in *Responses*. *Watches* track form changes and trigger push notifications.\n"],null,["# Overview\n\nThe Google Forms API is a RESTful interface that lets you create and modify forms\nand quizzes, retrieve form responses and quiz grades, set up quiz answer keys\nwith automatic feedback, and receive push notifications. The most common uses\nof this API include the following tasks:\n\n- Create a form or quiz\n- Publish and manage responders\n- Update a form or quiz\n- Retrieve responses from a form or quiz\n- Read form content and metadata\n- Set up and receive push notifications\n\nThe following is a list of common terms used in the Forms API:\n*Form*\n\n: A Google Forms document, created and stored in Drive. Each\n form is represented by a\n [`Form`](/workspace/forms/api/reference/rest/v1/forms) resource\n and has a unique `formId` value, containing letters, numbers, hyphens, or\n underscores. You can find the form ID in a Google Forms URL:\n\n: `https://docs.google.com/forms/d/FORM_ID/edit`\n\n*Quiz*\n\n: A specific type of Google Forms document that allows for grading of the\n form responses against an answer key. A quiz can only be created by using\n the [`batchUpdate()`](/workspace/forms/api/reference/rest/v1/forms/batchUpdate)\n method to update the `isQuiz` setting on an existing form to `true`.\n\n *Grading*\n : A point value, answer key, and feedback for a question, applied when\n `isQuiz` is `true`. Represented by the\n [`Grading`](/workspace/forms/api/reference/rest/v1/forms#grading) resource.\n\n *Feedback*\n : A response given to the end user when responding to a question on a quiz,\n represented by the [`Feedback`](/workspace/forms/api/reference/rest/v1/Feedback)\n resource.\n\n*Item*\n\n: A single element in a form, represented by the\n [Item](/workspace/forms/api/reference/rest/v1/forms#item) resource. `Item` is a\n repeating element which can contain a section, question group, question,\n text, image, or video.\n\n*Question*\n\n: A single question on the form, represented by the\n [`Question`](/workspace/forms/api/reference/rest/v1/forms#question) resource.\n\n*Question group*\n\n: A group of questions that all share the same set of possible answers (for\n example, a grid of ratings from 1 to 5). Represented by the\n [`QuestionGroupItem`](/workspace/forms/api/reference/rest/v1/forms#questiongroupitem)\n resource.\n\n*Section*\n\n: A section is a way to break up a form into multiple pages and add\n conditional logic (such as only showing certain questions based on how the\n user answers). Sections correspond to the\n [`PageBreakItem`](/workspace/forms/api/reference/rest/v1/forms#PageBreakItem)\n resource.\n\n*Answer*\n\n: The end user's answer to a question, represented by the\n [`Answer`](/workspace/forms/api/reference/rest/v1/forms.responses#Answer)\n resource. Includes both grade information (if present), metadata, and the\n content of the answer.\n\n*Response*\n\n: The end user's submission of a form, represented by the\n [`FormResponse`](/workspace/forms/api/reference/rest/v1/forms.responses)\n resource.\n\n*Watch*\n\n: A trigger that tracks changes to either form schema changes (such as edits\n to questions) or form response submissions and sends a push notification when\n a change occurs. Represented by the\n [`Watch`](/workspace/forms/api/reference/rest/v1/forms.watches) resource.\n\nForm structure\n--------------\n\nWhen managing forms and quizzes, understanding how to specify different fields\ncan be complicated, given that many of the form objects can be nested inside\neach other in multiple ways. To see how the visual representation of a form\nmaps to the fields, we recommend using the UI to create a few examples of\nforms your application might generate. Then retrieve the corresponding JSON\nusing the\n[`forms.get()`](/workspace/forms/api/reference/rest/v1/forms/get) method\nso you can compare. For example,\n[this example quiz](https://docs.google.com/forms/d/e/1FAIpQLSd0iBLPh4suZoGW938EU1WIxzObQv_jXto0nT2U8HH2KsI5dg/viewform)\ncorresponds to the following JSON: \n\n {\n \"formId\": \"FORM_ID\",\n \"info\": {\n \"title\": \"Famous Black Women\",\n \"description\": \"Please complete this quiz based off of this week's readings for class.\",\n \"documentTitle\": \"API Example Quiz\"\n },\n \"settings\": {\n \"quizSettings\": {\n \"isQuiz\": true\n }\n },\n \"revisionId\": \"00000021\",\n \"responderUri\": \"https://docs.google.com/forms/d/e/1FAIpQLSd0iBLPh4suZoGW938EU1WIxzObQv_jXto0nT2U8HH2KsI5dg/viewform\",\n \"items\": [\n {\n \"itemId\": \"5d9f9786\",\n \"imageItem\": {\n \"image\": {\n \"contentUri\": \"DIRECT_URL\",\n \"properties\": {\n \"alignment\": \"LEFT\"\n }\n }\n }\n },\n {\n \"itemId\": \"72b30353\",\n \"title\": \"Which African American woman authored \\\"I Know Why the Caged Bird Sings\\\"?\",\n \"questionItem\": {\n \"question\": {\n \"questionId\": \"25405d4e\",\n \"required\": true,\n \"grading\": {\n \"pointValue\": 2,\n \"correctAnswers\": {\n \"answers\": [\n {\n \"value\": \"Maya Angelou\"\n }\n ]\n }\n },\n \"choiceQuestion\": {\n \"type\": \"RADIO\",\n \"options\": [\n {\n \"value\": \"Maya Angelou\"\n },\n {\n \"value\": \"bell hooks\"\n },\n {\n \"value\": \"Alice Walker\"\n },\n {\n \"value\": \"Roxane Gay\"\n }\n ]\n }\n }\n }\n },\n {\n \"itemId\": \"0a4859c8\",\n \"title\": \"Who was the first Dominican-American woman elected to state office?\",\n \"questionItem\": {\n \"question\": {\n \"questionId\": \"37fff47a\",\n \"grading\": {\n \"pointValue\": 2,\n \"correctAnswers\": {\n \"answers\": [\n {\n \"value\": \"Grace Diaz\"\n }\n ]\n }\n },\n \"choiceQuestion\": {\n \"type\": \"RADIO\",\n \"options\": [\n {\n \"value\": \"Rosa Clemente\"\n },\n {\n \"value\": \"Grace Diaz\"\n },\n {\n \"value\": \"Juana Matias\"\n },\n {\n \"value\": \"Sabrina Matos\"\n }\n ]\n }\n }\n }\n }\n ],\n \"publishSettings\" : {\n \"isPublished\": true,\n \"isAcceptingResponses\": true\n }\n }\n\nNext steps\n----------\n\n- To learn about developing with Google Workspace APIs, including handling authentication and authorization, refer to [Get started as a Workspace developer](/workspace/guides/getstarted-overview).\n- To learn how to configure and run a basic Forms API app, read the [Quickstarts overview](/workspace/forms/api/guides/quickstarts-overview)."]]