İş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
HtmlResponsegönderilir. - Cihaz, web uygulamasını yüklemek için
HtmlResponseiçindeki URL'yi kullanır. dataJSON yükü, bir geri çağırmayla web uygulamasına iletilir.Sohbet işleminiz, güncelleme göndermek için yeni bir
HtmlResponsegö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
HtmlResponseiçermelidir. Amaç birHtmlResponseiç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
Welcomeniyetidir). HtmlResponseboyutu 50 KB veya daha küçük olmalıdır.