आपने fulfillment के साथ Action के लिए बातचीत तय की हो, यह कोड वेबहुक के तौर पर डिप्लॉय किया जाता है. इसमें आपके Dialogflow एजेंट के एजेंट शामिल होते हैं बातचीत वाला लॉजिक. ग्राहक को आइटम भेजने से आपकी सेट की गई कार्रवाई से पता चलता है कि जब उपयोगकर्ता खरीदारी करते हैं, तब क्या करना चाहिए अनुरोध.
Interactive Canvas के लिए, आपके फ़ुलफ़िलमेंट में आपकी
वेब ऐप्लिकेशन को Assistant से जोड़ें. Assistant को यह निर्देश देने के लिए, HtmlResponse
का इस्तेमाल किया जा सकता है
अपने वेब ऐप्लिकेशन को रेंडर करना. data
के लिए, HtmlResponse
भी अपडेट दे सकता है, जो
आपके वेब ऐप्लिकेशन के कस्टम लॉजिक का इस्तेमाल, वेब ऐप्लिकेशन में बदलाव करने के लिए किया जाता है.
इस पेज पर, ऑर्डर पूरा करने और सामान्य जानकारी के लिए HtmlResponse
का इस्तेमाल करने का तरीका बताया गया है
इस रिस्पॉन्स टाइप का इस्तेमाल करने के लिए दिशा-निर्देश देखें.
एचटीएमएल रिस्पॉन्स
Assistant को अपने वेब ऐप्लिकेशन की जानकारी देने के लिए, आपको
HtmlResponse
आपके इंटेंट के हिसाब से भी काम करते हैं. HtmlResponse
में यूआरएल शामिल हो सकता है
और डेटा जो वेब ऐप्लिकेशन को अपडेट करता है. भेजने पर
HtmlResponse
को खोलने पर, ये चरण होंगे:
- मैच होने वाले इंटेंट के पूरा होने पर, डिवाइस को एक
HtmlResponse
भेजा जाता है. - वेब ऐप्लिकेशन को लोड करने के लिए, डिवाइस,
HtmlResponse
में मौजूद यूआरएल का इस्तेमाल करता है. data
JSON पेलोड, कॉलबैक में वेब ऐप्लिकेशन को पास किया जाता है.अपडेट भेजने के लिए, बातचीत वाली आपकी कार्रवाई एक नया
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
. Assistant को यह मिलता है
और उस पते पर 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.intent('start', (conv) => {
conv.ask(`Ok, I'm spinning. What else?`);
conv.ask(new HtmlResponse({
data: {
spin: true,
},
}));
});
...
दिशा-निर्देश और पाबंदियां
HtmlResponse
के लिए इन दिशा-निर्देशों और पाबंदियों को ध्यान में रखें
ऑर्डर पूरा करने के लिए ज़रूरी शर्तें:
- आपके फ़ुलफ़िलमेंट में हर इंटेंट में एक
HtmlResponse
शामिल होना चाहिए. अगर इंटेंट मेंHtmlResponse
शामिल नहीं है, तो आपका वेब ऐप्लिकेशन बंद हो जाता है. - आपको भेजे जाने वाले पहले इंटेंट में सिर्फ़ अपना वेब ऐप्लिकेशन यूआरएल शामिल करना होगा
उपयोगकर्ता (आम तौर पर, यह
Welcome
इंटेंट होता है). HtmlResponse
का साइज़, 50 केबी या इससे कम होना चाहिए.