আপনি পরিপূর্ণতার সাথে আপনার অ্যাকশনের জন্য কথোপকথনটি সংজ্ঞায়িত করেন, যা একটি ওয়েবহুক হিসাবে নিয়োজিত কোড যা আপনার ডায়ালগফ্লো এজেন্টের কথোপকথনমূলক যুক্তি ধারণ করে। পূর্ণতা আপনার অ্যাকশনকে বলে যখন ব্যবহারকারীরা অনুরোধ করে তখন কী করতে হবে।
ইন্টারেক্টিভ ক্যানভাসের জন্য, আপনার পূর্ণতা সহকারীকে আপনার ওয়েব অ্যাপ সম্পর্কে তথ্যও জানায়। সহকারীকে আপনার ওয়েব অ্যাপ রেন্ডার করতে বলতে আপনি একটি HtmlResponse
ব্যবহার করতে পারেন। একটি HtmlResponse
data
আপডেটও প্রদান করতে পারে, যা আপনার ওয়েব অ্যাপ কাস্টম লজিক আপনার ওয়েব অ্যাপে পরিবর্তন করতে ব্যবহার করে।
এই পৃষ্ঠাটি আপনার পরিপূর্ণতায় HtmlResponse
কীভাবে ব্যবহার করতে হয় এবং এই প্রতিক্রিয়ার ধরনটি ব্যবহার করার জন্য সাধারণ নির্দেশিকা নিয়ে চলে।
HTML প্রতিক্রিয়া
আপনার ওয়েব অ্যাপ সম্পর্কে তথ্য অ্যাসিস্ট্যান্টের কাছে রিলে করতে, আপনাকে অবশ্যই আপনার উদ্দেশ্য-নির্দিষ্ট পূর্ণতায় একটি HtmlResponse
অন্তর্ভুক্ত করতে হবে। একটি HtmlResponse
ওয়েব অ্যাপের URL এবং ওয়েব অ্যাপ আপডেট করে এমন ডেটা থাকতে পারে। আপনি যখন একটি HtmlResponse
পাঠান, নিম্নলিখিত পদক্ষেপগুলি ঘটে:
- মিলিত অভিপ্রায়ের পূর্ণতা ডিভাইসে একটি
HtmlResponse
পাঠায়। - ওয়েব অ্যাপ লোড করতে ডিভাইসটি
HtmlResponse
এ URL ব্যবহার করে। -
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
অভিপ্রায়ের পূর্ণতা ওয়েব অ্যাপের URL সহ একটি HtmlResponse
পাঠায়। সহকারী এটি গ্রহণ করে এবং সেই ঠিকানায় 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
অন্তর্ভুক্ত না করে, তাহলে আপনার ওয়েব অ্যাপ বন্ধ হয়ে যাবে। - আপনি ব্যবহারকারীর কাছে যে প্রথম অভিপ্রায় পাঠান তাতে আপনাকে শুধুমাত্র আপনার ওয়েব অ্যাপের URL অন্তর্ভুক্ত করতে হবে (এটি সাধারণত
Welcome
অভিপ্রায়)। -
HtmlResponse
50kb বা ছোট আকারের হতে হবে।