1- نظرة عامة
تتيح لك منصة المطوّرين على "مساعد Google" إنشاء برامج لتوسيع نطاق وظائف "مساعد Google"، المساعد الشخصي الافتراضي، على أكثر من مليار جهاز، بما في ذلك مكبّرات الصوت الذكية والهواتف والسيارات وأجهزة التلفزيون وسماعات الرأس وغيرها. يستعين المستخدمون بـ "مساعد Google" في المحادثة لإنجاز المهام، مثل شراء البقالة أو حجز رحلة. بصفتك من المطوّرين، يمكنك استخدام منصة المطوّرين على "مساعد Google" لإنشاء تجارب محادثة ممتعة وفعّالة وإدارتها بسهولة بين المستخدمين وخدمة تنفيذ الطلبات التابعة لجهات خارجية.
يتناول هذا الدرس التطبيقي حول الترميز مفاهيم متوسطة المستوى للتطوير باستخدام "مساعد Google" وCloud Functions وCloud Firestore. في هذا الدرس التطبيقي حول الترميز، ستنشئ لعبة تُسمى "التدرّب على التدقيق الإملائي" يستخدم "مساعد Google" ليطلب من المستخدمين تهجئة الكلمات.
ما الذي ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستنشئ لعبة متطوّرة بالوظائف التالية:
- يتلقّى المستخدم ردودًا إملائية من المستخدم، ويتم تعديل الطلبات الحوارية استنادًا إلى القيمة.
- يرد بتلميحات ذات صلة بتهجئة الكلمة، مثل تعريفها أو تكرار الكلمة
- ينشئ حلقة ألعاب ليتمكّن المستخدم من التفاعل مع "مساعد Google" مرة أخرى بعد تهجئة الكلمة.
قبل البدء بإنشاء المحتوى، يمكنك التفاعل مع الإجراء المباشر على جهازك المزوّد بخدمة "مساعد Google" عبر قول "Ok Google، أريد التحدّث إلى ميزة التدرّب على التدقيق الإملائي". يبدو المسار التلقائي من خلال هذا الإجراء للمستخدِم المكرّر الزيارة على النحو التالي:
عند الانتهاء من هذا الدرس التطبيقي حول الترميز، سيتم تنفيذ الإجراءات الحوارية التالية بعد إكمال الإجراء:
المعلومات التي ستطّلع عليها
- كيفية التفاعل مع Cloud Firestore
- كيفية استخدام الخانات لجمع البيانات من المستخدم
- كيفية معالجة إدخالات المستخدم وعرض رد
- كيفية استخدام الشروط لإضافة منطقية إلى مشهد
- كيفية إضافة حلقة ألعاب
المتطلبات
تشمل المتطلبات الأساسية لهذا الدرس التطبيقي حول الترميز ما يلي:
- متصفح ويب، مثل Google Chrome
- بيئة تطوير متكاملة لكتابة دوال السحابة الإلكترونية
- طريقة دفع يستخدم هذا الدرس التطبيقي حول الترميز وظائف Cloud Functions لبرنامج Firebase، ما يتطلّب أن يكون مشروعك ضمن خطة تسعير Firebase Blaze ( مزيد من المعلومات).
- وحدة طرفية لتشغيل أوامر واجهة الأوامر
- Node.js 10 أو أحدث
2- الحصول على رمز الدوال
استنسِخ مستودع GitHub من سطر الأوامر:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3- إنشاء مشروع على Firebase وإعداد تطبيقك
إنشاء مشروع على Firebase
- سجِّل الدخول إلى Firebase.
- في وحدة تحكُّم Firebase، انقر على إضافة مشروع (أو إنشاء مشروع)، ثم أدخِل اسمًا لمشروع Firebase
Spelling-Practice
.
- انقر على خيارات إنشاء المشروع. وافِق على بنود Firebase إذا طُلب منك ذلك. يمكنك تخطّي عملية إعداد "إحصاءات Google" لأنّك لن تستخدم "إحصاءات Google" لهذا التطبيق.
لمزيد من المعلومات عن مشاريع Firebase، يمكنك الاطّلاع على مقالة فهم مشاريع Firebase.
الترقية إلى خطة أسعار Blaze
لاستخدام وظائف السحابة الإلكترونية لبرنامج Firebase، عليك ترقية مشروع Firebase إلى خطة الأسعار الأساسية، ما يعني أنك سترفق حساب فوترة على Google Cloud بمشروعك. وهذا يتطلّب منك توفير بطاقة ائتمان أو طريقة دفع أخرى.
سيظل بإمكان جميع مشاريع Firebase، بما في ذلك المشاريع المشتركة في خطة Blaze، الوصول إلى حصص الاستخدام بدون تكلفة لوظائف Cloud. تندرج الخطوات الموضّحة في هذا الدرس التطبيقي حول الترميز ضمن حدود الاستخدام بدون تكلفة. ومع ذلك، ستظهر لك رسومًا بسيطة ( حوالي 0.03 دولار أمريكي) من Cloud Storage، وهي تُستخدم لاستضافة صور إنشاء دوال السحابة.
4. تثبيت واجهة سطر الأوامر في Firebase
تتيح لك واجهة سطر الأوامر في Firebase نشر دوال السحابة.
تتوفّر عدّة خيارات لتثبيت واجهة سطر الأوامر في Firebase استنادًا إلى نظام التشغيل وحالة الاستخدام. تصف الخطوات التالية الخيار الأكثر شيوعًا إذا كنت تستخدم أيضًا دوال السحابة.
- تأكَّد من تثبيت npm الذي يأتي عادةً مع Node.js.
- يمكنك تثبيت واجهة سطر الأوامر أو ترقيته من خلال تشغيل الأمر npm التالي:
$ npm -g install firebase-tools
- تحقَّق من تثبيت واجهة سطر الأوامر بشكل صحيح من خلال تنفيذ ما يلي:
$ firebase --version
تأكَّد من أنّ إصدار واجهة سطر الأوامر في Firebase هو 9.0.0 أو إصدار أحدث، لكي يتضمّن أحدث الميزات المطلوبة لوظائف السحابة الإلكترونية. إذا لم يكن الأمر كذلك، فشغِّل npm install -g firebase-tools للترقية كما هو موضح أعلاه.
- تفويض واجهة سطر الأوامر لمنصّة Firebase من خلال تنفيذ ما يلي:
$ firebase login
- من دليل البدء للدوال الإملائية، يمكنك إعداد واجهة سطر الأوامر في Firebase لاستخدام مشروع Firebase. شغِّل الأمر التالي، واختَر رقم تعريف المشروع، ثم اتّبِع التعليمات. يمكنك اختيار أي اسم مستعار، مثل
codelab
، عندما يُطلب منك ذلك.
$ firebase use --add
5- دليل الدوال
والآن ستضيف وظائف تستخدم حزمة تطوير البرامج (SDK) لمنصّة Firebase لوظائف السحابة الإلكترونية لإنشاء خلفية اللعبة، وهي التدرّب على التدقيق الإملائي.
تتيح لك وظائف السحابة الإلكترونية الحصول على رمز يعمل في السحابة الإلكترونية بدون الحاجة إلى إعداد خادم. سيعرِض لك هذا الدرس التطبيقي كيفية إنشاء وظائف تستجيب لأحداث "مصادقة Firebase" و"Cloud Storage" و"قاعدة بيانات Firebase في الوقت الفعلي". لنبدأ بالمصادقة.
عند استخدام حزمة تطوير البرامج (SDK) لمنصّة Firebase لوظائف السحابة الإلكترونية، سيظهر رمز الوظائف ضمن دليل functions
(تلقائيًا). لتسهيل الأمر عليك، أنشأنا ملف functions/index.js
الذي سيتم نقل الرمز إليه. يمكنك فحص دليل functions
قبل المتابعة.
$ cd functions $ ls
إنّ رمز الدوال هو أيضًا تطبيق Node.js، وبالتالي يجب استخدام package.json
لتوفير بعض المعلومات حول تطبيقك وإدراج الاعتماديات.
إذا لم تكن معتادًا على استخدام Node.js، يمكنك الاطّلاع على مزيد من المعلومات حولها قبل مواصلة الدرس التطبيقي حول الترميز.
سبق أن يتضمّن ملف package.json
مرجعين مطلوبين، وهما حزمة تطوير البرامج (SDK) لمنصة Firebase for Cloud Functions وحزمة تطوير البرامج (SDK) لمشرف Firebase. لتثبيتها على الجهاز، شغِّل npm install
من دليل functions
:
$ npm install
لنلقِ الآن نظرة على ملف index.js
:
ملف index.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // TODO(DEVELOPER): Import the Cloud Functions for Firebase and Firebase Admin modules here. Also import the Actions SDK here. // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
ستقوم أولاً باستيراد الوحدات المطلوبة، ثم كتابة أربع دوال بدلاً من قوائم المهام. يمكنك المتابعة إلى الخطوة التالية من الدرس التطبيقي حول الترميز لاستيراد الوحدات.
6- استيراد الوحدات المطلوبة
يتطلب هذا الدرس التطبيقي حول الترميز ثلاث وحدات.
- تسمح لنا وحدة
firebase-functions
بكتابة عوامل التشغيل لدوال السحابة الإلكترونية. - تتيح لنا الوحدة
firebase-admin
استخدام منصة Firebase على خادم لديه إذن وصول إداري، مثلاً للكتابة إلى Cloud Firestore. - إنّ مكتبة Node.js Fulfillment Library (حزمة تطوير البرامج (SDK) الخاصة بالإجراءات SDK تفي بمعالجات SDK الخاصة بـ "مساعد Google" لخدمة "مساعد Google".
- ثبِّت حزمة "SDK للإجراءات" عن طريق تشغيل الأمر npm التالي:
$ npm install @assistant/conversation
- في ملف
index.js
، استبدِل أول مهمة بما يلي.
تعمل هذه التغييرات على استيراد كل من الوحدات المطلوبة.
ويمكن أيضًا ضبط حزمة "SDK لمشرف Firebase" تلقائيًا عند نشرها على بيئة Cloud Functions أو غيرها من حاوية Google Cloud. هذا ما يحدث عند استدعاء admin.initializeApp();
في التغييرات أدناه.
ملف index.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // Import the Actions SDK const {conversation} = require('@assistant/conversation'); const https = require('https'); const app = conversation(); const cors = require('cors')({origin: true}); // Import the Firebase SDK for Cloud Functions. const functions = require('firebase-functions'); // Import and initialize the Firebase Admin SDK. const admin = require('firebase-admin'); admin.initializeApp(); // To access Cloud Firestore const db = admin.firestore(); // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the shuffleWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
لنضيف الآن منطقًا للنشاط التجاري باستخدام الدوال لإتاحة إجراءات "مساعد Google".
7- إنشاء الدوال
احصل على تعريفات الكلمات واكتبها في Cloud Firestore
وستستخدم واجهة برمجة التطبيقات dictionaryapi.dev
المتاحة للجميع للحصول على تعريفات الكلمات.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ getWordDetailsFromDictionaryAPI
بما يلي:
ملف index.js
// Retrieves word definition and audio pronunciation from api.dictionaryapi.dev service // Function uses service provided by https://dictionaryapi.dev/ async function getWordDetailsFromDictionaryAPI(word) { let responseData=""; let req = https.request({ host: 'api.dictionaryapi.dev', port: 443, path:'/api/v2/entries/en/' + word, method:'GET' }, (res) => { res.setEncoding('utf8'); res.on('data', d => { responseData+=d; }) res.on('end',function(){ let object = JSON.parse(responseData) const wordListRef = db.collection('wordlist'); wordListRef.doc(object[0].word).set( object[0] ); return responseData; }); }); req.end(); }
إضافة مشغِّل Cloud Firestore
بعد ذلك، ستُنشئ دالة Cloud يتم تشغيلها عند إنشاء مستند جديد في Cloud Firestore. ستستدعي هذه الدالة واجهة برمجة التطبيقات dictionaryapi.dev
للحصول على تعريفات الكلمات من خلال الدالة getWordDetailsFromDictionaryAPI
التي كتبناها أعلاه.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ createSpellingPracticeWord
بما يلي:
ملف index.js
// مشغل Firestore الذي يجلب تعريفات الكلمات من خلال getWordDetailsFromDictionaryAPI لكل مستند جديد في Firestore
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
الحصول على قائمة بالكلمات الخاصة باللعبة
يمكنك كتابة دالة سحابية يمكنها استرداد قائمة بكلمات للتدرّب على التدقيق الإملائي من Cloud Firestore إلى "مساعد Google". لهذا، نستخدم معالج التطبيقات.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ getSpellingWordList
بما يلي.
يمكن إضافة هذه الدالة إلى السمة الخاصة app.handle
لإتاحة الوصول إلى الوظيفة من خلال "مساعد Google".
ملف index.js
// Store the list of spelling words in Assistant session app.handle('getSpellingWordList', conv => { const wordListRef = db.collection('wordlist').limit(50); const snapshot = wordListRef; if (snapshot.empty) { console.log('No matching documents.'); return; } VocabularyList = [] return snapshot.get().then(snapshot => { snapshot.forEach(doc => { if (doc.data().word) { let definition = 'unknown'; let audio = 'unknown'; try { if(doc.data().hasOwnProperty('meanings')) { if(doc.data().meanings[0].hasOwnProperty('definitions')) { definition = doc.data().meanings[0].definitions[0].definition; } } if(doc.data().hasOwnProperty('phonetics')) { if(doc.data().phonetics.length > 0) audio = doc.data().phonetics[0].audio; } } catch (error) { console.log(error); } let obj = { word: doc.data().word, answer: doc.data().word.split("").join(" "), definition: definition, audio: audio } VocabularyList.push(obj); } // Shuffle the array let currentIndex = VocabularyList.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = VocabularyList[currentIndex]; VocabularyList[currentIndex] = VocabularyList[randomIndex]; VocabularyList[randomIndex] = temporaryValue; } conv.session.params.vocabWord = VocabularyList; conv.session.params.vocabWordIndex = 0; }); }); })
الْحُصُولْ عَلَى كَلِمَة من جلسة "مساعد Google"
يمكنك كتابة دالة سحابية تعرض الكلمة الإملائية التالية من قائمة الكلمات.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ getSpellingWord
بما يلي:
ملف index.js
// Returns a spelling practice word to Google Assistant and uses Speech Synthesis Markup Language (SSML) to format the response app.handle('getSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { conv.session.params.vocabWordIndex+=1; const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word.</audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
تفعيل اللعبة لتكرار الكلمة
يمكنك كتابة دالة Cloud تكرّر الكلمة الحالية في اللعبة.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ repeatSpellingWord
بما يلي:
ملف index.js
// Returns current spelling word app.handle('repeatSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word. </audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
الحصول على تعريف للكلمة
يمكنك كتابة دالة السحابة الإلكترونية التي توفر تعريف الكلمة الحالية الخاصة باللعبة.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ definitionOfSpellingWord
بما يلي:
ملف index.js
// Returns spelling word definition from Assistant session parameter app.handle('definitionOfSpellingWord', conv => { conv.add( 'It means ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].definition); });
التحقق من الرد الإملائي للمستخدم
ويمكنك كتابة دالة سحابية تتحقق من رد المستخدم بشأن كيفية تهجئة الكلمة الحالية للعبة.
في الملف index.js
، استبدِل قائمة المهام الخاصة بـ verifySpellingWord
بما يلي:
ملف index.js
// Verifies user spelling response app.handle('verifySpellingWord', conv => { try { userResponse = conv.intent.params.userresponse.resolved.join(""); if (userResponse.toLowerCase() === conv.session.params.vocabWord[conv.session.params.vocabWordIndex].word.toLowerCase()) { conv.add('You are correct. Say next to continue.'); } else { conv.add('Sorry, wrong answer. The correct answer is ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].answer + ' . Say next to continue.'); } } catch (error) { conv.add('Sorry. I did not understand your response' ); } }); exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
نشر جميع الدوال
لن تكون وظائف السحابة الإلكترونية نشطة إلا بعد نشرها على Firebase.
من جذر الدليل spelling-functions-start
، شغِّل الأمر التالي:
$ firebase deploy --only functions
هذا هو ناتج وحدة التحكّم الذي يُفترض أن يظهر لك:
i deploying functions i functions: ensuring necessary APIs are enabled... ⚠ functions: missing necessary APIs. Enabling now... i env: ensuring necessary APIs are enabled... ⚠ env: missing necessary APIs. Enabling now... i functions: waiting for APIs to activate... i env: waiting for APIs to activate... ✔ env: all necessary APIs are enabled ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... i functions: packaged functions (X.XX KB) for uploading ✔ functions: functions folder uploaded successfully i starting release process (may take several minutes)... i functions: creating function createSpellingPracticeWord(us-central1)... ✔ functions[createSpellingPracticeWord(us-central1)]: Successful create operation. i functions: creating function ActionsOnGoogleFulfillment(us-central1)... ✔ functions[ActionsOnGoogleFulfillment(us-central1)]: Successful create operation. ✔ Deploy complete! Project Console: https://console.firebase.google.com/project/spelling-practice-1234/overview
دوِّن عنوان URL لنقطة نهاية Http لوظيفة ActionOnGoogleFulfillment من أجل استخدامها لاحقًا. للحصول على نقطة النهاية، افتح وحدة تحكُّم Firebase ثم انقر على مشروع spelling-practice. افتح لوحة بيانات الدوال لعرض نقطة نهاية الدوال.
لقد أكملت إضافة جميع الدوال المطلوبة. لننتقل الآن إلى إعداد Cloud Firestore.
8- تفعيل Cloud Firestore
يجب تفعيل Cloud Firestore.
في قسم إنشاء ضمن "وحدة تحكُّم Firebase"، انقر على Firestore. بعد ذلك، انقر على إنشاء قاعدة بيانات.
يتم التحكّم في إمكانية الوصول إلى البيانات في Cloud Firestore من خلال "قواعد الأمان". تحتاج أولاً إلى وضع بعض القواعد الأساسية على البيانات للبدء. انقر على Firestore، ثم في علامة التبويب "القواعد" في "وحدة تحكُّم Firebase"، أضِف القواعد التالية، ثمّ انقر على نشر.
تحظر القواعد التالية الوصول إلى البيانات على المستخدمين الذين سجّلوا الدخول، ما يمنع المستخدمين الذين لم تتم مصادقتهم من القراءة أو الكتابة.
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { // // WARNING: These rules are insecure! We will replace them with // more secure rules later in the codelab // allow read, write: if request.auth != null; } } }
9- إضافة بيانات الكلمات الإملائية إلى Cloud Firestore
في هذه الخطوة، ستكتب بيانات الكلمات الإملائية في Cloud Firestore لتتمكن من إنشاء قائمة بكلمات "مساعد Google" (واللعبة).
يتم تنظيم بيانات Cloud Firestore في مجموعات ومستندات وحقول ومجموعات فرعية. سيتم تخزين كل كلمة من كلمات اللعبة كمستند خاص بها في مجموعة عالية المستوى تُسمى wordlist
. لكل مستند جديد في مجموعة Firestore، سيتم تشغيل الدالة createSpellingPracticeWord للحصول على تفاصيل الكلمة من خدمة واجهة برمجة تطبيقات القاموس
إنشاء مجموعة Cloud Firestore
- في وحدة تحكُّم Firebase، انتقِل إلى قسم Cloud Firestore.
- انقر على + بدء جمع الصور.
- في مربّع النص معرّف المجموعة، أدخِل
wordlist
، ثم انقر على التالي.
بعد ذلك، سننشئ مستندًا لكلمة: agreement.
- في مربع النص معرّف المستند، أدخِل
agreement
. - في مربّع نص الحقل، أدخِل
word
، وفي مربّع النص القيمة، أدخِلagreement
. - انقر على حفظ.
عند إضافة هذا المستند إلى Cloud Firestore، يؤدي ذلك إلى تشغيل الدالة createSpellingPracticeWord لاسترجاع تفاصيل تعريف الكلمة. أضف مزيدًا من الكلمات (على سبيل المثال: مذهل، سيارة، صواب، إخبار، أفضل، تنقل، ...) من خلال إنشاء مستند جديد لكل كلمة.
10- إعداد "مساعد Google"
توضّح الأقسام التالية كيفية إعداد بيئة تطوير "مساعد Google" وإنشاء مشروع "المهام".
التحقّق من إعدادات أذونات Google
لاختبار "الإجراء" الذي تنشئه في هذا الدرس التطبيقي حول الترميز، يجب تفعيل الأذونات اللازمة ليتمكّن المحاكي من الوصول إلى الإجراء الخاص بك. لتفعيل الأذونات، اتّبِع الخطوات التالية:
- انتقل إلى صفحة عناصر التحكم في النشاط.
- سجِّل الدخول باستخدام حسابك على Google، إذا لم يسبق لك إجراء ذلك.
- تفعيل الأذونات التالية:
- النشاط على الويب وفي التطبيقات
- ضمن الويب و نشاط التطبيقات، ضَع علامة في مربّع الاختيار بجانب تضمين سجلّ Chrome والأنشطة التي تتم على المواقع والتطبيقات والأجهزة التي تستخدم خدمات Google.
إنشاء مشروع على "المهام مع مساعد Google"
مشروع "المهام" هو حاوية للإجراء الخاص بك. لإنشاء مشروع "المهام" الخاص بهذا الدرس التطبيقي حول الترميز، اتّبِع الخطوات التالية:
- افتح وحدة تحكّم الإجراءات.
- انقر على مشروع جديد.
- قبول بنود الخدمة
- اكتب أو اختَر رمز
spelling-practice-codelab
الذي أنشأته باستخدام "وحدة تحكُّم Firebase". (الاسم كمرجع داخلي لك. يمكنك لاحقًا ضبط اسم خارجي لمشروعك).
- انقر على استيراد مشروع.
- في شاشة ما نوع الإجراء الذي تريد إنشاءه؟، اختَر البطاقة مخصّصة.
- انقر على التالي.
- اختَر بطاقة مشروع فارغ.
- انقر على بدء المبنى.
- أدخِل التدرّب على التدقيق الإملائي لاسم العرض وانقر على "حفظ".
يبدأ المستخدمون المحادثة مع الإجراء الخاص بك من خلال الاستدعاء. على سبيل المثال، يمكن للمستخدمين استدعاء الإجراء من خلال قول عبارة مثل "Hey Google، أريد التحدّث إلى تطبيق التدقيق الإملائي"، حيث يكون التدرّب على الهجاء هو الاسم المعروض.
يجب أن يكون للإجراء الخاص بك اسم معروض إذا أردت نشره في قناة الإصدار العلني. ومع ذلك، لاختبار الإجراء الخاص بك، لن تحتاج إلى تحديد الاسم المعروض. بدلاً من ذلك، يمكنك استخدام عبارة "التحدث إلى التطبيق التجريبي" في المحاكي لاستدعاء الإجراء.
ضبط إعدادات توصيل الطلبات
عليك الاتصال بمعالجات الأحداث في "مساعد Google" لوظائف السحابة الإلكترونية التي كتبتها ونشرتها في وقت سابق في هذا الدرس التطبيقي حول الترميز.
لضبط طريقة تنفيذ طلبك، اتّبِع الخطوات التالية:
- انقر على الردّ التلقائي على الويب في شريط التنقّل الجانبي.
- اختَر نقطة نهاية Https كخيار لتنفيذ الطلب:
- أدخِل عنوان URL لنقطة نهاية الدالة في مربع النص نقطة نهاية HTTP، ثم انقر على حفظ.
في القسم التالي، عليك تخصيص الطلب للاستدعاء الرئيسي في وحدة تحكّم المهام.
إعداد الاستدعاء الرئيسي
عليك تعديل الاستدعاء الرئيسي لتحديد ما يحدث بعد استدعاء المستخدم للإجراء الخاص بك.
بشكل تلقائي، تقدّم "أداة إنشاء المهام" طلبًا عامًا عند تشغيل الاستدعاء ("بدء إنشاء الإجراء من خلال تحديد الاستدعاء الرئيسي").
لتعديل الطلب الذي يرسله الإجراء مرة أخرى إلى المستخدم عند استدعاء الإجراء، اتّبِع الخطوات التالية:
- انقر على الاستدعاء الرئيسي في شريط التنقّل.
- ضَع علامة في المربّع
Call your webhook
وأضِف اسم معالج الأحداثgetSpellingWordList
في مربّع النص. - في محرِّر الرموز، استبدِل النص في الحقل
speech
برسالة الترحيب التالية:Welcome to Spelling Practice
ملاحظة: يمكنك استخدام تنسيق YAML أو JSON لتعديل طلباتك.
- انقر على حفظ.
اختبِر الاستدعاء الرئيسي في المحاكي
توفّر وحدة تحكّم "المهام" أداة ويب لاختبار الإجراء الخاص بك والتي يُطلق عليها المحاكي. تحاكي الواجهة الأجهزة وإعداداتها، ما يتيح لك التحدّث إلى المهمّة كما لو كانت تعمل على شاشة ذكية أو هاتف أو مكبّر صوت أو نظام تشغيل KaiOS.
لاختبار الاستدعاء الرئيسي للإجراء في المحاكي، اتّبِع الخطوات التالية:
- في شريط التنقّل العلوي، انقر على اختبار للانتقال إلى المحاكي.
- لاستدعاء الإجراء في المحاكي، اكتب
Talk to Spelling Practice
في حقل الإدخال في أعلى يمين الشاشة، ثم اضغط على مفتاح Enter على لوحة المفاتيح.
عند تشغيل الاستدعاء الرئيسي للإجراء، يستجيب "مساعد Google" برسالة ترحيب مخصّصة. عند هذه النقطة، تنتهي المحادثة بعد أن يستجيب "مساعد Google" بتحية.
عرض سجلات الأحداث
عند الانتقال إلى علامة التبويب اختبار، تعرض اللوحة على يسار الصفحة سجلّات الأحداث التي تعرض سجلّ المحادثات كسجلات أحداث. ويعرض كل سجلّ أحداث الأحداث التي تحدث خلال هذا الدور من المحادثة. لعرض سجلّ الأحداث، انقر على الرمز الرمادي قبل بدء الحدث.
يحتوي الإجراء الخاص بك حاليًا على سجلّ أحداث واحد، يعرض إدخال المستخدم ("Talk to Spelling Practice") وردّ الإجراء الخاص بك. تعرض لقطة الشاشة التالية سجلّ أحداث الإجراء الخاص بك:
11- بناء المحادثة للتدرّب على التدقيق الإملائي
الآن بعد أن حددت ما يحدث بعد أن يستدعي المستخدم الإجراء الخاص بك، يمكنك تجهيز باقي محادثة الإجراء الخاص بك. يتضمّن التدرّب على التدقيق الإملائي أربعة مشاهد، ويجب تفعيل كل مشهد قبل تشغيله. إنّ الطريقة الأكثر شيوعًا لتفعيل مشهد هي ضبط الإجراء الخاص بك، بحيث عندما يطابق المستخدم نية المستخدم في مشهد، يؤدي هذا الهدف إلى الانتقال إلى مشهد آخر وتفعيله.
الانتقال من الاستدعاء الرئيسي إلى المشهد الأول
في هذا القسم، تُنشئ مشهدًا جديدًا باسم Start
يرسِل طلبًا إلى المستخدم يسأله عما إذا كان يريد بدء تشغيل التدرّب على التدقيق الإملائي. يمكنك أيضًا إضافة انتقال من الاستدعاء الرئيسي إلى مشهد Start
الجديد.
لإنشاء هذا المشهد وإضافة تأثير انتقال إليه، اتبع الخطوات التالية:
- انقر على التطوير في شريط التنقّل بأعلى الصفحة. بعد ذلك، انقر على الاستدعاء الرئيسي في شريط التنقّل الأيمن.
- في قسم النقل على يسار الصفحة، انقر على القائمة المنسدلة، ثم اكتب
Start
في حقل النص.
- انقر على إضافة. يؤدي ذلك إلى إنشاء مشهد باسم
Start
، وتوجيه الإجراء للانتقال إلى المشهدStart
بعد أن يعرض الإجراء طلب الترحيب للمستخدم. - انقر على المَشاهد في شريط التنقّل الأيمن لعرض قائمة المشاهد.
- ضمن المَشاهد، انقر على بدء للاطّلاع على المشهد
Start
. - انقر على + في قسم عند الدخول للمشهد
Start
. - انقر على إرسال الطلبات.
- استبدِل الجملة في الحقل
speech
(Enter the response that users will see or hear...
) بسؤال لطرحه على المستخدم:Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?
.
توفّر شرائح الاقتراحات اقتراحات يمكن للمستخدم النقر عليها ويعالجها الإجراء كإدخال للمستخدم. في هذا القسم، يمكنك إضافة شرائح اقتراحات تظهر تحت الطلب الذي ضبطته للتو (Do you want to play
.
Spelling Practice
?
) لدعم المستخدمين على الأجهزة المزوّدة بشاشات.
لإضافة شرائح اقتراحات إلى طلب المشهد Start
، اتّبِع الخطوات التالية:
- في المشهد
Start
، انقر على الاقتراحات تحت أداة تعديل الرموز. يؤدي هذا الإجراء إلى إضافة شريحة اقتراح واحدة. - في الحقل
title
، استبدِلSuggested Response
بـ'Yes'
. - باستخدام التنسيق نفسه، أضِف يدويًا شريحة اقتراح بعنوان
'No'
و'Help with Phonetics'
. يجب أن يظهر الرمز على النحو التالي: - انقر على حفظ.
اختبِر "الحركة" في المحاكي
في هذه المرحلة، يجب أن ينتقل الإجراء الخاص بك من الاستدعاء الرئيسي إلى المشهد Start (البدء) ويسأل المستخدم عما إذا كان يريد المتابعة. يجب أن تظهر شرائح الاقتراحات أيضًا في شاشة العرض التي تمت محاكاتها.
لاختبار المهمّة في المحاكي، اتّبِع الخطوات التالية:
- في شريط التنقّل، انقر على اختبار للانتقال إلى المحاكي.
- لاختبار الإجراء الذي تم تنفيذه في المحاكي، اكتب
Talk to Spelling Practice
في حقل الإدخال. - اضغط على Enter. يجب أن يستجيب الإجراء الخاص بك مع الطلب
Main invocation
ومطالبة المشهدStart
المُضافة، "مرحبًا بك في ميزة التدرّب على التدقيق الإملائي". استخدام الأبجدية الصوتية لتهجئة الكلمة. على سبيل المثال، ألفا لكلمة a، أو bravo على b، أو charlie للإشارة إلى c، أو غير ذلك. هل تريد المتابعة؟".
توضح لقطة الشاشة التالية هذا التفاعل:
- انقر على شريحة الاقتراح
Yes
أوNo
أوHelp with Phonetics
للرد على الطلب. (يمكنك أيضًا قول "نعم" أو "لا" أو "المساعدة في استخدام الصوتيات" أو إدخالYes
أوNo
أوHelp with Phonetics
في حقل الإدخال.)
عند الرد على الطلب، يستجيب الإجراء برسالة تشير إلى أنه لا يمكنه فهم الإدخال: "عذرًا، لم أفهم ذلك. هل يمكنك إعادة المحاولة؟" بما أنّك لم تضبط الإجراء الخاص بك لكي يفهم الإدخال نعم أو لا ويردّ عليه، يطابق الإجراء إدخالك مع هدف NO_MATCH
.
يوفّر الهدف من نظام NO_MATCH
تلقائيًا ردودًا عامة، ولكن يمكنك تخصيص هذه الردود لإخبار المستخدم بأنّك لم تفهم الإدخال الذي أدخله. ينهي "مساعد Google" محادثة المستخدم باستخدام الإجراء الخاص بك بعد أن يتعذّر عليه مطابقة البيانات التي أدخلها المستخدم ثلاث مرات.
إضافة "لا" والأهداف الصوتية
الآن بعد أن تمكّن المستخدمون من الإجابة عن السؤال الذي يطرحه الإجراء، يمكنك ضبط الإجراء الخاص بك لفهم إجراءات المستخدمين. الردود ("نعم" أو "لا" أو "مساعدة في استخدام الصوتيات"). في الأقسام التالية، تُنشئ أهدافًا للمستخدم تتم مطابقتها عندما يقول المستخدم "نعم" أو "لا" أو "مساعدة في استخدام الرموز الصوتية" وتضيف هذه الأهداف إلى المشهد Start
. سنستخدم هدف النظام yes
وسننشئ أغراضًا أخرى.
إنشاء هدف "no
"
والآن، عليك إنشاء هدف no
لفهم المستخدم والردّ عليه في حال عدم رغبته في تشغيل اللعبة. لإنشاء هذا الهدف، اتّبِع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على أهداف مخصّصة في شريط التنقّل لفتح قائمة الأهداف.
- انقر على + (علامة الجمع) في نهاية قائمة الأهداف. أدخِل اسمًا للهدف الجديد
no
واضغط على مفتاح Enter. - انقر على لا لفتح صفحة الهدف
no
. - في قسم إضافة عبارات تدريب، انقر على مربّع النص إدخال عبارة وأدخِل العبارات التالية:
No
N
I don't want
nope
- انقر على حفظ.
إضافة هدف واحد (no
) إلى مشهد واحد (Start
)
أما الآن، فيمكن أن يتعرّف المستخدم على كلمة "لا" أو عبارة مشابهة لـ "لا"، مثل "لا". يجب إضافة هدف المستخدم no
إلى المشهد Start
لأنّ المستخدم يردّ على طلب Start
("مرحبًا بك في ميزة التدقيق الإملائي. استخدام الأبجدية الصوتية لتهجئة الكلمة. على سبيل المثال ألفا لكلمة a، أو bravo على b، أو charlie للتعبير عن c. أو ما إلى ذلك. هل تريد المتابعة؟").
لإضافة هذا الهدف لمشهد Start
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد بدء في شريط التنقّل.
- انقر على + (علامة الجمع) في مشهد
Start
بجانب معالجة نيّة المستخدم. - في قسم Intent، اختَر لا من القائمة المنسدلة.
- انقر على إرسال الطلبات وعدِّل الحقل
speech
بالنص التالي:Good Bye
.
يجب أن يظهر الرمز في المحرر على النحو التالي:
candidates: - first_simple: variants: - speech: >- Goodbye.
- في القسم النقل، اختَر إنهاء المحادثة من القائمة المنسدلة.
- انقر على حفظ.
اختبار هدف "no
" في المحاكي
في هذه المرحلة، يعرف الإجراء الخاص بك الحالات التي لا يرغب المستخدم في تشغيل اللعبة ويعرض الاستجابة المناسبة.
لاختبار هذا النية في المحاكي، اتبع الخطوات التالية:
- في شريط التنقّل، انقر على اختبار.
- اكتب
Talk to Spelling Practice
في حقل الإدخال واضغط على الزرEnter
. - اكتب
No
في حقل إدخال (Input) واضغط على Enter. أو انقر على شريحة "ما مِن اقتراحات".
إضافة هدف النظام YES
إلى مشهد Start
سنضيف الآن الغرض من النظام "نعم" إلى المشهد Start
، لأنّ المستخدم يجيب بنعم على طلب Start
("مرحبًا بك في ميزة "التدرّب على التدقيق الإملائي". استخدام الأبجدية الصوتية لتهجئة الكلمة. على سبيل المثال ألفا لكلمة a، أو bravo على b، أو charlie للتعبير عن c. أو ما إلى ذلك. هل تريد المتابعة؟").
لإضافة هدف المستخدم هذا إلى مشهد Start
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد بدء في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Start
بجانب التعامل مع النية بالشراء. - ضمن "جميع أهداف النظام"، اختَر نعم في القائمة المنسدلة للأهداف.
- انقر على الاتصال بالردّ التلقائي على الويب وعدِّل مربّع النص
event handler
باستخدام الدالة التي أنشأتها سابقًا:getSpellingWordList
- في قسم النقل، انقر على القائمة المنسدلة واختَر إنهاء المحادثة.
- انقر على حفظ.
اختبار هدف "YES
" في المحاكي
في هذه المرحلة، يعرف الإجراء الخاص بك الوقت الذي يريد فيه المستخدم تشغيل اللعبة ويعرض الاستجابة المناسبة.
لاختبار هذا النية في المحاكي، اتبع الخطوات التالية:
- في شريط التنقّل، انقر على اختبار.
- لاختبار الإجراء في "المحاكي"، اكتب
Talk to Spelling Practice
في حقل الإدخال، ثم اضغط على Enter. - اكتب
Yes
في حقل إدخال (Input) واضغط على Enter. يمكنك بدلاً من ذلك النقر على شريحة الاقتراحYes
.
يجلب الإجراء الخاص بك قائمة بجميع كلمات التدرّب على التدقيق الإملائي ويخزّنها في الجلسة. بعد ذلك، ينهي الإجراء الخاص بك الجلسة لأنّك اخترت انتقال End conversation
للغرض YES
.
إنشاء هدف "Phonetics
"
لإنشاء هدف Phonetics
، اتّبِع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على أهداف مخصّصة في شريط التنقّل لفتح قائمة الأهداف.
- انقر على + (علامة الجمع) في نهاية قائمة الأهداف. أدخِل اسمًا للهدف الجديد
phonetics
واضغط على الزرEnter
. - انقر على رمز intent
phonetics
لفتح صفحة الهدفphonetics
. - في قسم "إضافة عبارات التدريب"، انقر على مربّع النص إدخال عبارة وأدخِل العبارات التالية:
how do I spell words
phonetics
help me with phonetics
phonetic alphabet
- انقر على حفظ.
إضافة هدف واحد (phonetics
) إلى مشهد واحد (Start
)
أما الآن، فيمكن أن يرصد الإجراء الحالات التي يعبّر فيها المستخدم عن نية "صوتية". يمكنك إضافة هدف المستخدم phonetics
إلى المشهد Start
، لأنّ المستخدم يردّ على طلب Start
("مرحبًا بك في ميزة التدقيق الإملائي. استخدام الأبجدية الصوتية لتهجئة الكلمة. على سبيل المثال ألفا لكلمة a، أو bravo على b، أو charlie للتعبير عن c. أو ما إلى ذلك. هل تريد المتابعة؟").
لإضافة هدف المستخدم هذا إلى مشهد Start
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد بدء في شريط التنقّل.
- انقر على علامة + (علامة الجمع) في المشهد
Start
بجانب معالجة نيّة المستخدم. - اختَر الصوتيات في قائمة الأهداف المنسدلة.
- في قسم النقل، انقر على القائمة المنسدلة واختَر إنهاء المحادثة.
- انقر على حفظ.
الانتقال من مشهد البدء إلى مشهد التدقيق الإملائي
في هذا القسم، تنشئ مشهدًا جديدًا يسمى التدقيق الإملائي، والذي يرسل طلبًا إلى المستخدم لتهجئة الكلمة باستخدام الأبجدية الصوتية.
لإنشاء هذا المشهد وإضافة تأثير انتقال إليه، اتبع الخطوات التالية:
- انقر على التطوير في شريط التنقّل بأعلى الصفحة. بعد ذلك، انقر على بدء المشهد في شريط التنقّل الأيمن.
- في قسم التعامل مع حسب نية المستخدم، انقر على
when actions.intent.YES is matched
وعلى يسار الصفحة في قسم الانتقال، انقر على القائمة المنسدلة واكتبSpelling
في حقل النص. - انقر على إضافة. يؤدي ذلك إلى إنشاء مشهد باسم
Spelling
، وتوجيه الإجراء للانتقال إلى المشهدSpelling
بعد المطابقة بعبارة "نعم" المطلوبة. - وسِّع المَشاهد في شريط التنقّل الأيمن لعرض قائمة المشاهد.
- ضمن المَشاهد، انقر على "تدقيق إملائي" للاطّلاع على مشهد
Spelling
. - انقر على + في قسم عند الدخول للمشهد
Spelling
. - انقر على طلب الردّ التلقائي على الويب وأدخِل getSpellingWord في مربّع نص معالج الحدث.
- انقر على إرسال الطلبات.
- استبدِل الجملة في الحقل
speech
(Enter the response that users will see or hear...
) بـ {}. ستتم تعبئة الطلب الفعلي من خلال الرد التلقائي على الويب.
توفّر شرائح الاقتراحات اقتراحات يمكن للمستخدم النقر عليها ويعالجها الإجراء كإدخال للمستخدم.
لإضافة شرائح اقتراحات إلى طلب المشهد Spelling
، اتّبِع الخطوات التالية:
- في المشهد
Spelling
، انقر على الاقتراحات تحت أداة تعديل الرموز. يؤدي هذا الإجراء إلى إضافة ثلاث شرائح اقتراحات. - في الحقل
title
، استبدِلSuggested Response
بـ'Repeat'
. - باستخدام التنسيق نفسه، أضِف يدويًا شريحة اقتراح بعنوان
'Skip'
. - باستخدام التنسيق نفسه، أضِف يدويًا شريحة اقتراح بعنوان
'Quit'
. يجب أن يظهر الرمز على النحو التالي: - انقر على حفظ.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
إنشاء هدف "Repeat
"
لإنشاء هدف repeat
، اتّبِع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على أهداف مخصّصة في شريط التنقّل لفتح قائمة الأهداف.
- انقر على + (علامة الجمع) في نهاية قائمة الأهداف. أدخِل اسمًا للهدف الجديد
repeat
واضغط على الزرEnter
. - انقر على رمز intent
repeat
لفتح صفحة الهدفdefinition
. - في قسم إضافة عبارات تدريب، انقر على مربّع النص إدخال عبارة وأدخِل العبارات التالية:
one more time please
say the word again
repeat the word
tell me again
repeat
- انقر على حفظ.
إضافة هدف واحد (repeat
) إلى مشهد واحد (Spelling
)
أما الآن، فيمكن أن يتعرّف الإجراء على الحالات التي يعبّر فيها المستخدم عن نية "التكرار". يمكنك إضافة هدف المستخدم repeat
إلى المشهد Spelling
، لأنّ المستخدم يردّ على طلب Spelling
("تهجئة الكلمة باستخدام الأبجدية الصوتية").
لإضافة هدف المستخدم هذا إلى مشهد Spelling
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد تدقيق إملائي في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Spelling
بجانب التعامل مع النية بالشراء. - اختَر تكرار في القائمة المنسدلة "الهدف".
- ضع علامة في المربّع طلب الردّ التلقائي على الويب وأدخِل repeatSpellingWord في مربّع نص معالج الحدث للحصول على تعريف الكلمة.
- ضَع علامة في المربّع إرسال الطلبات.
- استبدِل الجملة في الحقل
speech
(Enter the response that users will see or hear...
) بـ "'. ستتم تعبئة الطلب الفعلي من خلال الرد التلقائي على الويب.
إضافة شرائح اقتراحات إلى "عند مطابقة التكرار"
- في "عند مطابقة التكرار" ضمن "معالجة نية المستخدم"، انقر على الاقتراحات أسفل أداة تعديل الرموز. يؤدي هذا الإجراء إلى إضافة ثلاث شرائح اقتراحات.
- في الحقل
title
، استبدِلSuggested Response
بـ'Skip'
. - باستخدام التنسيق نفسه، أضِف يدويًا شريحة اقتراح بعنوان
'Quit'
.من المفترض أن يظهر الرمز على النحو التالي:
suggestions: - title: 'Skip' - title: 'Quit'
- انقر على حفظ.
إنشاء هدف "definition
"
لإنشاء هدف definition
، اتّبِع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على أهداف مخصّصة في شريط التنقّل لفتح قائمة الأهداف.
- انقر على + (علامة الجمع) في نهاية قائمة الأهداف. أدخِل اسمًا للهدف الجديد
definition
واضغط على الزرEnter
. - انقر على رمز intent
definition
لفتح صفحة الهدفdefinition
. - في قسم إضافة عبارات تدريب، انقر على مربّع النص إدخال عبارة وأدخِل العبارات التالية:
I would like to know the definition
tell me the definition
what does it mean
meaning
definition
what is the definition?
- انقر على حفظ.
إضافة هدف واحد (definition
) إلى مشهد واحد (Spelling
)
أما الآن، فيمكن أن يرصد الإجراء عندما يعبّر المستخدم عن هدف "تعريف". يمكنك إضافة هدف المستخدم definition
إلى المشهد Spelling
، لأنّ المستخدم يردّ على طلب Spelling
("تهجئة الكلمة باستخدام الأبجدية الصوتية").
لإضافة هدف المستخدم هذا إلى مشهد Spelling
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد تدقيق إملائي في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Spelling
بجانب التعامل مع النية بالشراء. - اختَر التعريف في القائمة المنسدلة للأهداف.
- ضع علامة في المربّع طلب الردّ التلقائي على الويب وأدخِل definitionOfSpellingWord في مربّع نص معالج الحدث للحصول على تعريف الكلمة.
- ضَع علامة في المربّع إرسال الطلبات.
- استبدِل الجملة في الحقل
speech
(Enter the response that users will see or hear...
) بـ "'". ستتم تعبئة الطلب الفعلي من خلال الرد التلقائي على الويب.
إضافة شرائح اقتراحات إلى ردّ الردّ التلقائي على الويب
- في المشهد
Start
، انقر على الاقتراحات أسفل أداة تعديل الرموز. يؤدي هذا الإجراء إلى إضافة ثلاث شرائح اقتراحات. - في الحقل
title
، استبدِلSuggested Response
بـ'Skip'
. - باستخدام التنسيق نفسه، أضِف يدويًا شريحة اقتراح بعنوان
'Quit'
.من المفترض أن يظهر الرمز على النحو التالي:
suggestions: - title: 'Skip' - title: 'Quit'
- انقر على حفظ.
إنشاء هدف "skip
"
لإنشاء هدف skip
، اتّبِع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على الأهداف في شريط التنقّل لفتح قائمة الأهداف.
- انقر على + (علامة الجمع) في نهاية قائمة الأهداف. أدخِل اسمًا للهدف الجديد
skip
واضغط على الزرEnter
. - انقر على رمز intent
skip
لفتح صفحة الهدفskip
. - في قسم إضافة عبارات تدريب، انقر على مربّع النص إدخال عبارة وأدخِل العبارات التالية:
next word
go next
next
skip
skip word
- انقر على حفظ.
إضافة هدف واحد (Skip
) إلى مشهد واحد (Spelling
)
أما الآن، فيمكن أن يتعرّف الإجراء على الحالات التي يعبّر فيها المستخدم عن نية "التخطّي". يمكنك إضافة هدف المستخدم skip
إلى المشهد Spelling
، لأنّ المستخدم يردّ على طلب Spelling
("تهجئة الكلمة باستخدام الأبجدية الصوتية").
لإضافة هدف المستخدم هذا إلى مشهد Spelling
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد تدقيق إملائي في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Spelling
بجانب دليل المستخدم حسب نية المستخدم. - اختَر تخطّي في القائمة المنسدلة للأهداف.
- في قسم النقل على يسار الصفحة، انقر على القائمة المنسدلة واختَر
Spelling
.
- انقر على حفظ.
إنشاء هدف "quit
"
لإنشاء هدف Quit
، اتّبِع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على الأهداف في شريط التنقّل لفتح قائمة الأهداف.
- انقر على + (علامة الجمع) في نهاية قائمة الأهداف. أدخِل اسمًا للهدف الجديد
Quit
واضغط على الزرEnter
. - انقر على رمز intent
Quit
لفتح صفحة التعريف. - في قسم إضافة عبارات تدريب، انقر على مربّع النص إدخال عبارة وأدخِل العبارات التالية:
I quit
Goodbye
Cancel
Exit
Quit
- انقر على حفظ.
إضافة هدف واحد (Quit
) إلى مشهد واحد (Spelling
)
أما الآن، فيمكن أن يرصد الإجراء عندما يعبّر المستخدم عن نية "إنهاء". يمكنك إضافة هدف المستخدم quit
إلى المشهد Spelling
، لأنّ المستخدم يردّ على طلب Spelling
("تهجئة الكلمة باستخدام الأبجدية الصوتية").
لإضافة هدف المستخدم هذا إلى مشهد Spelling
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد تدقيق إملائي في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Spelling
بجانب التعامل مع النية بالشراء. - اختر إنهاء في القائمة المنسدلة للأهداف.
- في قسم النقل على يسار الصفحة، انقر على القائمة المنسدلة واختَر
End conversation
. - انقر على حفظ.
إنشاء نوع phonetic_alphabet
في هذا القسم، تُنشئ نوعًا جديدًا يُسمى phonetic_alphabet
، والذي يحدد خيارات الأبجدية الصوتية التي يمكن للمستخدمين اختيار تهجئة الكلمة بها. ويمكنك أيضًا تحديد بعض المرادفات لهذه الخيارات في حال قال المستخدم شيئًا مشابهًا. في قسم لاحق، يمكنك إضافة النوع phonetic_alphabet
إلى خانة لتحديد أنّك تريد الحصول على ردّ المستخدم.
لإنشاء النوع phonetic_alphabet
، يُرجى اتّباع الخطوات التالية:
- انقر على تطوير في شريط التنقّل.
- انقر على + (علامة الجمع) ضمن الأنواع.
- اكتب
phonetic_alphabet
واضغط على الزرEnter
. - انقر على
phonetic_alphabet
لفتح الخيارات. - في القسم ما نوع القيم التي سيتوافقها هذا النوع؟، حدِّد الخيار الكلمات والمرادفات.
- أدخِل الإدخالات التالية والقيم المقابلة في قسم إضافة إدخالات:
a | ألفا، تفاح، أمستردام |
ب | برافو، زبدة، بالتيمور |
ج | تشارلي، قط، الدار البيضاء |
d | دلتا، كلب، الدنمارك |
. | إكو، إدوارد، إديسون |
و | ثعلب، ثعلب، فلوريدا |
g | غولف، جورج، غاليبولي |
ح | فندق، هاري، هافانا |
i | الهند، الحبر، إيطاليا |
ي | جولييت، جوني، القدس |
k | كيلو، كينغ، كيلوغرام |
l | ليما، الحب، لندن |
م | مايكل، المال، مدغشقر |
ن | تشرين الثاني (نوفمبر)، نيويورك، نانسي |
o | أوسكار، أورانج، أوسلو |
p | بابا، باريس، جمال |
ربع السنة | كيبك، كوين |
r | روما، روما، روبرت |
s | سيرا، سكر، سانتياغو |
| تانغو، تومي، طرابلس |
u | زي موحَّد، مظلة، عمّ |
v | فيكتور، خلّ، فالنسيا |
w | ويسكي، ويليام، واشنطن |
x | الأشعة السينية |
y | يانكي، أصفر، يوركر |
z | الزولو، والحمار الوحشي، وزيورخ |
يجب أن يظهر جدول القيمة الأساسية على النحو التالي:
- انقر على حفظ.
إعداد ملء الخانات
بعد ذلك، تحتاج إلى ضبط ملء الخانة في مشهد التدقيق الإملائي. لضبط منطق ملء الخانة، اتبع الخطوات التالية:
- انقر على المشهد تدقيق إملائي في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Spelling
من أجل ملء الشرائح. - في الحقل إدخال اسم الخانة، أضِف
userresponse
كاسم الخانة. - في القائمة المنسدلة اختيار نوع، اختَر phonetic_alphabet كنوع الخانة.
- ضَع علامة في المربّع تقبل هذه الخانة قائمة بالقيم
- ضَع علامة في المربّع هذه الخانة مطلوبة.
- حدِّد الخيار تخصيص قيمة الكتابة في خانة القيمة وأدخِل userresponse في مربع نص معلَمة الجلسة.
- انقر على حفظ.
إضافة حالة إلى شاشة Spelling
لإضافة حالة إلى المشهد Spelling
، يُرجى اتّباع الخطوات التالية:
- انقر على المشهد تدقيق إملائي في شريط التنقّل.
- انقر على + (علامة الجمع) في المشهد
Spelling
بجانب "الحالة". - إدخال
scene.slots.status == "FINAL"
كشرط - ضع علامة في المربّع طلب الردّ التلقائي على الويب وأدخِل verifySpellingWord في مربّع نص معالج الحدث للتحقّق من ردّ المستخدم.
- ضَع علامة في المربّع إرسال الطلبات.
- استبدِل الجملة في الحقل
speech
(Enter the response that users will see or hear...
) بـ {}. ستتم تعبئة الطلب الفعلي من خلال الرد التلقائي على الويب.
إضافة شرائح اقتراحات إلى ردّ الردّ التلقائي على الويب
- في المشهد
Start
، انقر على الاقتراحات أسفل أداة تعديل الرموز. يؤدي هذا الإجراء إلى إضافة ثلاث شرائح اقتراحات. - في الحقل
title
، استبدِلSuggested Response
بـ'Next'
. - باستخدام التنسيق نفسه، أضِف يدويًا شريحة اقتراح بعنوان
'Quit'
.من المفترض أن يظهر الرمز على النحو التالي:
suggestions: - title: 'Next' - title: 'Quit'
- انقر على حفظ.
12- اختبِر التدرّب على التدقيق الإملائي في المحاكي
لاختبار المهمّة في المحاكي، اتّبِع الخطوات التالية:
- في شريط التنقّل، انقر على اختبار للانتقال إلى المحاكي.
- لاختبار الإجراء الذي تم تنفيذه في المحاكي، اكتب
Talk to Spelling Practice
في حقل الإدخال. - اضغط على Enter. يجب أن يستجيب الإجراء الخاص بك مع الطلب
Main invocation
ومطالبة المشهدStart
المُضافة، "مرحبًا بك في ميزة التدرّب على التدقيق الإملائي". استخدام الأبجدية الصوتية لتهجئة الكلمة. على سبيل المثال، ألفا لكلمة a، أو bravo على b، أو charlie للإشارة إلى c، أو غير ذلك. هل تريد المتابعة؟". - قُل نعم للمتابعة
- سيشغِّل المحاكي صوتًا لتهجئة الكلمات.
- يمكنك تهجئة الكلمة باستخدام الأحرف الأبجدية الصوتية. على سبيل المثال، أفضل قول أو كتابة "bravo echo tango tango echo romeo"
- سيرد المحاكي إما برد صحيح أو غير صحيح.
- قل التالي للمتابعة إلى الكلمة التالية أو قل إنهاء للخروج من حلقة الألعاب.
13- تهانينا
تهانينا، لقد نجحت في إنشاء لعبتك التدرّب على التدقيق الإملائي.
لقد تعرفت الآن على الخطوات الرئيسية المطلوبة لإنشاء لعبة باستخدام Cloud Firestore وCloud Functions وأداة إنشاء المهام في "مساعد Google".
المواضيع التي تناولتها
- كيفية التفاعل مع Cloud Firestore
- كيفية استخدام الخانات لجمع البيانات من المستخدم
- كيفية معالجة إدخالات المستخدم وعرض رد
- كيفية استخدام الشروط لإضافة منطقية إلى مشهد
- كيفية إضافة حلقة ألعاب
مصادر التعلُّم الإضافية
يمكنك الاطّلاع على المراجع التالية للحصول على معلومات حول إنشاء "المهام مع مساعد Google":
- مستندات لتطوير خدمة "المهام مع مساعد Google"
- صفحة "المهام مع مساعد Google" على GitHub لنماذج الرموز البرمجية والمكتبات
- منتدى Reddit الرسمي للمطوّرين الذين يعملون باستخدام "مساعد Google"
- إرشادات تصميم المحادثات لمعرفة أفضل الممارسات والإرشادات المتعلّقة بـ "إجراءات المحادثات"
- مقدّمة حول Cloud Firestore
تنظيف مشروعك [يُنصَح به]
لتجنُّب تحمُّل رسوم محتملة، ننصحك بإزالة المشاريع التي لا تنوي استخدامها. لحذف المشاريع التي أنشأتها في هذا الدرس التطبيقي حول الترميز، اتّبِع الخطوات التالية:
- لحذف مشروع وموارد Firebase، يجب إكمال الخطوات الواردة في القسم إيقاف تشغيل (حذف) المشاريع.
تحذير: تأكَّد من اختيار المشروع الصحيح لحذفه في صفحة الإعدادات على Google Cloud Console.
- اختياري: لإزالة مشروعك على الفور من وحدة التحكّم في الإجراءات، أكمِل الخطوات المدرَجة في القسم حذف مشروع. في حال عدم إكمال هذه الخطوة، ستتم إزالة مشروعك تلقائيًا بعد 30 يومًا تقريبًا.
متابعة @ActionsOnGoogle تابِع @Firebase على Twitter لمعرفة أحدث الإعلانات، والتغريدة على #GoogleIO لمشاركة ما أنجزته.