أنت تحدّد المحادثة المتعلقة بالإجراء من خلال التنفيذ. وهو رمز برمجي تمّ نشره كردّ تلقائي على الويب يحتوي على رمز الاستجابة السريعة لوكيل Dialogflow منطق المحادثة. يحدد التنفيذ الإجراء المطلوب تنفيذه عندما يتخذ المستخدمون الطلبات.
بالنسبة إلى لوحة الرسم التفاعلية، تعرض طريقة التنفيذ أيضًا معلومات عن
تطبيق الويب إلى "مساعد Google". يمكنك استخدام HtmlResponse
لتطلب من "مساعد Google" تنفيذ ما يلي:
لعرض تطبيق الويب الخاص بك. يمكن أيضًا لـ HtmlResponse
تقديم تعديلات على data
، والتي
الذي يستخدمه المنطق المخصص لتطبيق الويب لإجراء تغييرات على تطبيق الويب.
تتناول هذه الصفحة كيفية استخدام "HtmlResponse
" في طريقة التنفيذ والمعلومات العامة.
إرشادات حول استخدام هذا النوع من الردود.
ردود HTML
لإرسال معلومات عن تطبيق الويب إلى "مساعد Google"، يجب تضمين
HtmlResponse
في تحقيق هدفك. يمكن أن تحتوي HtmlResponse
على عنوان URL
لتطبيق الويب والبيانات التي تعمل على تحديث تطبيق الويب. عند الإرسال
HtmlResponse
، سيحدث ما يلي:
- يؤدي تنفيذ الغرض المطابق إلى إرسال
HtmlResponse
إلى الجهاز. - يستخدم الجهاز عنوان URL المتوفّر في
HtmlResponse
لتحميل تطبيق الويب. - يتم تمرير حمولة JSON
data
إلى تطبيق الويب في معاودة الاتصال. يرسل "الإجراء الحواري" عنصر "
HtmlResponse
" جديدًا لإرسال التعديلات أو تحميل حالات جديدة.
نموذج توصيل الطلب
المقتطف التالي من العينة
يوضّح رمز التنفيذ طريقة تنفيذ HtmlResponse
:
const functions = require('firebase-functions');
const {dialogflow, HtmlResponse} = require('actions-on-google');
const app = dialogflow({debug: true});
app.intent('welcome', (conv) => {
conv.ask('Welcome! Do you want me to change color or pause spinning?');
conv.ask(new HtmlResponse({
url: 'https://your-web-app.com',
}));
});
// map of human speakable colors to color values
const tints = {
red: 0xFF0000,
green: 0x00FF00,
blue: 0x0000FF,
};
app.intent('color', (conv, {color}) => {
if (color in tints) {
conv.ask(`Ok, I changed my color to ${color}. What else?`);
conv.ask(new HtmlResponse({
data: {
tint: tints[color],
},
}));
return;
}
conv.ask(`Sorry, I don't know that color. What else?`);
conv.ask(new HtmlResponse({
data: {
query: conv.query,
},
}));
});
app.intent('start', (conv) => {
conv.ask(`Ok, I'm spinning. What else?`);
conv.ask(new HtmlResponse({
data: {
spin: true,
},
}));
});
app.intent('pause', (conv) => {
conv.ask(`Ok, I paused spinning. What else?`);
conv.ask(new HtmlResponse({
data: {
spin: false,
},
}));
});
app.intent('restart game', (conv) => {
conv.ask(new HtmlResponse({
data: {
command: 'RESTART_GAME',
},
}));
});
exports.conversation = functions.https.onRequest(app);
هدف واحد (welcome
)
في المقتطف أعلاه، يُرسِل تنفيذ الغرض welcome
HtmlResponse
باستخدام عنوان URL لتطبيق الويب. يتلقّى "مساعد Google" هذه الإشعارات
وتحميل HTML وJavaScript على هذا العنوان.
...
app.intent('welcome', (conv) => {
conv.ask('Welcome! Do you want me to change color or pause spinning?');
conv.ask(new HtmlResponse({
url: 'https://your-web-app.com',
}));
});
...
أغراض أخرى
يؤدي HtmlResponse
في التنفيذ للعناصر الأخرى إلى تمرير قيم متغيّر.
(tint
أو spin
في النموذج) إلى تطبيق الويب. المنطق المخصص للويب
app هذه القيم لتحديث العناصر (الرسوم المتحركة واللون وما إلى ذلك):
...
app.intent('start', (conv) => {
conv.ask(`Ok, I'm spinning. What else?`);
conv.ask(new HtmlResponse({
data: {
spin: true,
},
}));
});
...
الإرشادات والقيود
عليك مراعاة الإرشادات والقيود التالية المفروضة على استخدام HtmlResponse
.
عند تحديد مدى تلبية الطلبات:
- يجب أن يتضمّن كل هدف في تنفيذ طلبك سمة
HtmlResponse
. إذا كانت النية لا يتضمّنHtmlResponse
، سيتم إغلاق تطبيق الويب. - ما عليك سوى تضمين عنوان URL لتطبيق الويب في intent الأولى التي ترسل إليها.
المستخدم (عادةً ما يكون هذا هو هدف
Welcome
). - يجب أن يكون حجم "
HtmlResponse
" 50 كيلوبايت أو أصغر.