واجهة برمجة تطبيقات نماذج Google عبارة عن واجهة مريحة تتيح لك إنشاء نماذج واختبارات وتعديلها واسترداد ردود النماذج ودرجات الاختبار وإعداد مفاتيح الإجابة عن الاختبار باستخدام التعليقات التلقائية وتلقي الإشعارات الفورية. تتضمن الاستخدامات الأكثر شيوعًا لواجهة برمجة التطبيقات هذه المهام التالية:
- إنشاء نموذج أو اختبار
- تعديل نموذج أو اختبار
- استرداد الردود من نموذج أو اختبار
- قراءة محتوى النموذج والبيانات الوصفية
- إعداد إشعارات الدفع وتلقيها
في ما يلي قائمة بالعبارات الشائعة المستخدمة في واجهة برمجة التطبيقات للنماذج:
- النموذج
مستند "نماذج Google" تم إنشاؤه وتخزينه في Drive. ويتم تمثيل كل نموذج من خلال مورد
Form
ويحتوي على قيمةformId
فريدة تحتوي على أحرف أو أرقام أو واصلات أو شرطات سفلية. يمكنك العثور على رقم تعريف النموذج في عنوان URL لنماذج Google:https://docs.google.com/forms/d/FORM_ID/edit
- اختبار
نوع محدّد من مستندات "نماذج Google" التي تسمح بوضع درجات لردود النموذج مقابل مفتاح إجابة. لا يمكن إنشاء الاختبار إلا باستخدام طريقة
batchUpdate()
لتحديث إعدادisQuiz
على نموذج حالي إلىtrue
.- العنصر
تمثل هذه الخاصية عنصرًا واحدًا في النموذج، يتم تمثيله بمورد 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"
}
]
}
}
}
}
]
}
الخطوات التالية
- للتعرُّف على معلومات عن التطوير باستخدام واجهات برمجة تطبيقات Google Workspace، بما في ذلك التعامل مع المصادقة والتفويض، يُرجى الرجوع إلى البدء كمطوّر برامج في Google Workspace.
- للتعرُّف على كيفية إعداد تطبيق API للنماذج وتشغيله بسهولة، يمكنك قراءة نظرة عامة حول Quickstarts.