İşleminizle ilgili görüşmeyi sipariş karşılama ile tanımlarsınız, Bu, Dialogflow aracınızın aşağıdakileri içeren bir webhook olarak dağıtılan koddur: diyaloğa dayanır. Sipariş karşılama, İşleminize kullanıcılar bir şeyler yaptığında ne kabul edersiniz.
Etkileşimli Tuval'de, isteğinizle ilgili bilgiler de
Asistan'a aktarmanızı sağlar. HtmlResponse
kullanarak Asistan'a şunları söyleyebilirsiniz:
web uygulamanızı oluşturun. HtmlResponse
, data
için güncellemeler de sağlayabilir. Bu güncellemeler
web uygulamanızın özel mantığının web uygulamanızda değişiklik yapmak için kullandığı araçlardır.
Bu sayfada, sipariş karşılama ve genel anlamda HtmlResponse
ürününü nasıl kullanacağınız açıklanmaktadır.
yönergeleri inceleyin.
HTML yanıtları
Web uygulamanızla ilgili bilgileri Asistan'a aktarmak için
HtmlResponse
önemli bir parçasıdır. HtmlResponse
, URL'yi içerebilir
web uygulaması ve web uygulamasını güncelleyen veriler. Gönderdiğinizde
HtmlResponse
söz konusu olduğunda aşağıdaki adımlar gerçekleşir:
- Eşleşen amaç yerine getirildiğinde cihaza bir
HtmlResponse
gönderilir. - Cihaz, web uygulamasını yüklemek için
HtmlResponse
içindeki URL'yi kullanır. data
JSON yükü, bir geri çağırmayla web uygulamasına iletilir.Sohbet işleminiz, güncelleme göndermek için yeni bir
HtmlResponse
gönderir veya yeni eyaletler yüklenir.
Örnek sipariş karşılama
Örnekten alınan aşağıdaki alıntı
sipariş karşılama kodu, HtmlResponse
ürününün nasıl uygulanacağını gösterir:
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
intent
Yukarıdaki snippet'te welcome
amacının karşılanması bir
Web uygulamasının URL'sini içeren HtmlResponse
. Asistan bunu alır
ve bu adrese HTML ve JavaScript'i yükler.
...
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',
}));
});
...
Diğer amaçlar
Diğer amaçlara yönelik karşılamadaki HtmlResponse
, değişken değerler iletir
(örnekte tint
veya spin
) web uygulamasına yükleyin. Web için özel mantık
Uygulama, öğeleri (animasyonlar, renk vb.) güncellemek için bu değerleri kullanır:
...
app.intent('start', (conv) => {
conv.ask(`Ok, I'm spinning. What else?`);
conv.ask(new HtmlResponse({
data: {
spin: true,
},
}));
});
...
Kurallar ve kısıtlamalar
HtmlResponse
ile ilgili olarak aşağıdaki kuralları ve kısıtlamaları göz önünde bulundurun
göz önünde bulundurmanız
gerektiğini unutmayın:
- Sipariş karşılamadaki her niyet bir
HtmlResponse
içermelidir. Amaç birHtmlResponse
içermiyorsa web uygulamanız kapanır. - Yalnızca gönderdiğiniz ilk amaca web uygulamanızın URL'sini eklemeniz gerekir
kullanıcı (bu genellikle
Welcome
niyetidir). HtmlResponse
boyutu 50 KB veya daha küçük olmalıdır.