Interactive Canvas API 是一个 JavaScript 库,用于接口
在 Web 应用中使用 interactiveCanvas
对象与对话型 Action 搭配使用。
如需详细了解 Interactive Canvas,请参阅 Interactive Canvas 文档。
方法
准备好了
ready(callbacks) returns undefined
在 Interactive Canvas Web 应用加载后调用此方法,以便注册回调。
参数 | |
---|---|
callbacks |
InteractiveCanvasCallbacks
包含方法回调的对象。 |
sendTextQuery
sendTextQuery(textQuery) returns Promise<state>
向对话操作发送文本查询。
参数 | |
---|---|
textQuery |
string
要发送到对话操作的查询。 |
state |
string
以下任一项:
|
getHeaderHeightPx
getHeaderHeightPx() returns Promise<height>
确定标题在显示屏顶部的高度。
参数 | |
---|---|
height |
number
高度(以像素为单位)。 |
outputTts
outputTts(text, openMic) returns undefined;
播放 SSML 文本。
参数 | |
---|---|
text |
string
SSML 支持播放的字符串。 |
openMic |
boolean
是否在播放 TTS 后打开麦克风。 |
createIntentHandler
createIntentHandler(intentId, callback) returns IntentHandler
为 NLU 自定义 intent 创建 intent 处理程序。
参数 | |
---|---|
intentId |
string
Actions Builder 中定义的 intent 名称。 |
callback |
function(MatchedIntent)
当 intent 匹配成功时要执行的函数。 |
IntentHandler |
object
可使用 |
IntentHandler
表示 intent 处理程序的对象。可以使用 expect()
或 prompt()
注册。
MatchedIntent
包含匹配意图数据的对象。
方法 | |
---|---|
getIntentArg(parameterName) |
function(string)
用于获取匹配意图的 intent 参数的方法。 |
createNumberSlot
createNumberSlot(callback, hints?) returns Slot<number>
创建一个数字类型的广告位。
参数 | |
---|---|
callback |
function(FilledSlot)
广告位填充时要执行的函数。 |
hints |
Hints
用户在填充槽位时可能会说出的简短字词。 |
Slot |
object
可使用 |
createTextSlot
createTextSlot(callback, hints?) returns Slot<string>
创建一个字符串类型的广告位。
参数 | |
---|---|
callback |
function(FilledSlot)
广告位填充时要执行的函数。 |
hints |
Hints
用户在填充槽位时可能会说出的简短字词。 |
Slot |
object
可使用 |
createConfirmationSlot
createConfirmationSlot(callback, hints?) returns Slot<boolean>
创建一个布尔值类型的广告位。
参数 | |
---|---|
callback |
function(FilledSlot)
广告位填充时要执行的函数。 |
hints |
Hints
用户在填充槽位时可能会说出的简短字词。 |
Slot |
object
可使用 |
createOptionsSlot
createOptionsSlot(options, callback, hints?) returns Slot<string>
根据预定义的选项列表创建广告位。
参数 | |
---|---|
options |
array<Option>
广告位填充时要执行的函数。 |
callback |
function(FilledSlot)
广告位填充时要执行的函数。 |
hints |
Hints
用户在填充槽位时可能会说出的简短字词。 |
Slot |
object
可使用 |
广告位
表示要填充的广告位的对象。可以使用 expect()
或 prompt()
注册。
FilledSlot<T>
表示已填充的广告位的对象。
参数 | |
---|---|
T |
boolean|number|string
广告位类型。 |
选项
表示广告位类型条目的对象。
字段 | |
---|---|
key |
string
广告位类型条目的唯一标识符。 |
synonyms |
array<string>
用于选择槽选项的字词列表。 |
提示
表示插槽提示的对象。
字段 | |
---|---|
associatedWords |
array<string>
用于帮助 NLU 系统确定要填充哪个位置的字词列表。 |
预计
expect(expectation) returns HandlerRegistration
在客户端上注册预期。可以在 intent 处理程序和槽上调用。
参数 | |
---|---|
expectation |
IntentHandler|Slot
要注册的 intent 处理程序或槽。 |
HandlerRegistration |
object
已注册的 intent 处理程序或槽。 |
HandlerRegistration
表示已注册的 intent 处理程序的对象。
方法 | |
---|---|
deleteHandler() |
function
取消注册预期的 intent 处理程序。 |
clearExpectations
clearExpectations() returns undefined;
通过删除所有之前注册的 intent 处理程序和槽来移除所有预期。
提示符
prompt(tts, expectation) returns Promise<Answer<T>>
提示用户使用提供的 TTS 字符串,并在客户端上登记预期。可以在 intent 处理程序和槽上调用。
参数 | |
---|---|
tts |
string
用于提示用户指定预期值的 TTS 字符串。 |
expectation |
IntentHandler|Slot
要注册的 intent 处理程序或槽。 |
Answer<T> |
object
用户针对提示提供的回答。 |
答案<T>
一个对象,表示用户针对提示提供的答案。
字段 | |
---|---|
value |
boolean|number|string
用户提供的答案的值。 |
status |
string
答案状态。 以下任一项:
|
triggerScene
triggerScene(sceneName) returns Promise<TriggerSceneStatus>
触发场景。
参数 | |
---|---|
sceneName |
string
要触发的场景的名称。 |
TriggerSceneStatus |
string
对 triggerScene() 的调用的状态。 以下任一项:
|
setUserParam
setUserParam(key, value) returns Promise<undefined>;
设置在对话之间传递和保留的键值对。
参数 | |
---|---|
key |
string
参数键。 |
value |
object|array|boolean|number|string
参数值。 |
getUserParam
getUserParam(key) returns Promise<object|array|boolean|number|string>;
获取指定键的参数值(如果存在)以及调用的状态。
参数 | |
---|---|
key |
string
参数键。 |
resetUserParam
resetUserParam() returns Promise<void>;
清除所有用户参数。
setHomeParam
setHomeParam(key, value) returns Promise<undefined>;
设置在对话之间传递和保留的键值对。
参数 | |
---|---|
key |
string
参数键。 |
value |
object|array|boolean|number|string
参数值。 |
getHomeParam
getHomeParam(key) returns Promise<object|array|boolean|number|string>;
获取指定键的参数值(如果存在)以及调用的状态。
参数 | |
---|---|
key |
string
参数键。 |
resetHomeParam
resetHomeParam() returns Promise<void>;
清除所有用户参数。
setCanvasState
setCanvasState(state) returns undefined
通知 Google 助理 Canvas Web 应用已更新其状态。通过
setCanvasState
方法不会返回值。状态载荷可通过
conv.context.canvas.state
属性。
参数 | |
---|---|
state |
Object
画布应用的更新状态,作为 JSON 对象。 |
InteractiveCanvasCallbacks
这些回调提供了一种响应信息或请求的方法 而这些方法则提供了一种 向对话型 Action 发送信息或请求。
onUpdate
onUpdate(data) returns Promise|undefined
在对话型 Action 发送 Canvas
响应时调用。TTS 将在以下时间后启动:
返回的 Promise 进行解析,或者在 10 秒后超时。
参数 | |
---|---|
data |
Object
已更新 Webhook 发送的数据。 |
onTtsMark
onTtsMark(markName) returns undefined
在 TTS 播放期间调用的回调。
始终触发的特殊标记:
START
表示 TTS 的开头。END
表示 TTS 的结束。ERROR
表示播放 TTS 时出错。
您还可以使用 SSML 和 <mark>
标记定义自定义标记,例如
<mark name="custom"/>
。
参数 | |
---|---|
markName |
string
标记在 TTS 播放期间调用的名称。 |
onInputStatusChanged
onInputStatusChanged(inputStatus) returns undefined
通知 Canvas 应用 Google 助理输入状态已发生变化。
参数 | |
---|---|
inputStatus |
Enum
设备上语音和/或文字输入处理的状态。罐形 为以下值:
|