您可使用執行要求定義動作的對話、 是部署為 Webhook 的程式碼 內含您 Dialogflow 虛擬服務專員的 對話邏輯「執行要求」能告知使用者該採取哪些動作 要求。
使用互動式畫布時,您的執行要求也會傳達
更新至 Google 助理你可以使用「HtmlResponse
」要求 Google 助理執行下列操作:
轉譯您的網頁應用程式HtmlResponse
也可以為 data
提供更新,
修改網頁應用程式的自訂邏輯。
本頁面將說明如何在執行要求和一般項目中使用 HtmlResponse
定義這些回應類型的使用指南
HTML 回應
如要將網頁應用程式的資訊轉發給 Google 助理,請在回應中加上
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
為網頁應用程式的網址。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.intent('start', (conv) => {
conv.ask(`Ok, I'm spinning. What else?`);
conv.ask(new HtmlResponse({
data: {
spin: true,
},
}));
});
...
規範與限制
請注意「HtmlResponse
」的下列規範和限制
建立執行要求時,請留意以下要點:
- 執行要求中的每個意圖都必須包含
HtmlResponse
。如為意圖 不含HtmlResponse
,網頁應用程式會關閉。 - 您只需在傳送目的地的第一個意圖中納入網頁應用程式網址
使用者 (通常是
Welcome
意圖)。 HtmlResponse
的大小不得超過 50KB。