Dialogflow CX Messenger provides functions 您可以调用来影响其行为的函数。
renderCustomText
此函数会显示一条简单的文本消息,就像它作为简单的文本响应来自智能体一样,或者是由最终用户输入的。
参数:
string:文本消息boolean:对于来自智能体的消息,为 true;对于来自最终用户的消息,为 false
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
dfMessenger.renderCustomText('Custom text', true);
renderCustomCard
此函数会显示一个自定义卡片,就像它来自 Dialogflow CX Fulfillment 一样。
参数:
payload:自定义载荷响应的列表,这些响应在 Fulfillment 部分中定义。
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
const payload = [
{
"type": "info",
"title": "Info item title",
"subtitle": "Info item subtitle",
"image": {
"rawUrl": "https://example.com/images/logo.png"
},
"anchor": {
"href": "https://example.com",
"target": "_blank"
}
}
];
dfMessenger.renderCustomCard(payload);
sendQuery
此函数会向 Dialogflow CX API 发送查询并等待响应。这实际上模拟了通常提供给智能体对话框的最终用户输入。系统将像处理任何最终用户的查询一样处理响应。
参数:
string:文本查询
返回:
Promise<void>:异步操作的返回值
例如:
const dfMessenger = document.querySelector('df-messenger');
dfMessenger.sendQuery('Describe shipping costs.');
sendRequest
此函数会向 Dialogflow CX API 发送请求并等待响应。
参数:
string:请求类型,支持query(另请参阅上文中的sendQuery)和event(请参阅 自定义 事件)any:与请求类型对应的载荷,目前对于这两种受支持的请求类型都是字符串
返回:
Promise<void>:异步操作的返回值
例如:
const dfMessenger = document.querySelector('df-messenger');
dfMessenger.sendRequest('query', 'Describe shipping costs.');
setQueryParameters
此函数会为
queryParams
字段设置 Dialogflow CX API detectIntent 请求的默认值。其他 Dialogflow CX Messenger 方法可能会替换查询参数中的相应默认值。
参数:
object:JSON 数据。如需了解查询参数的架构,请参阅 QueryParameters
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
const queryParameters = {
parameters: {
timeZone: "America/New_York"
}
};
dfMessenger.setQueryParameters(queryParameters);
setContext
此函数会将有关最终用户的生成式 个性化 信息发送到 Dialogflow CX。此信息将在会话的剩余时间内保留。
参数:
object:JSON 数据,请参阅生成式个性化文档
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
const metadata = {
"subscription plan": "Business Premium Plus",
"devices owned": [
{
model: "Google Pixel 7",
},
{
model: "Google Pixel Tablet",
},
],
};
dfMessenger.setContext(metadata);
clearStorage
此函数会清除智能体对话的永久性存储。它还会清除智能体对话的当前状态。默认情况下,它会保留用户的身份验证状态。您可以使用可选的 args 自定义此行为。
参数:
| 名称 | 类型 | 说明 |
|---|---|---|
args |
object? |
用于配置清除存储操作的可选参数。 |
args.clearAuthentication |
boolean? |
用于清除身份验证状态的可选标志。如果设置为 true,则身份验证状态将被清除,否则将保留。 |
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
dfMessenger.clearStorage();
clearAuthentication
此函数会清除智能体对话框的身份验证。
参数:
- 无
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
dfMessenger.clearAuthentication();
startNewSession
此函数会在智能体对话框内启动新会话。默认情况下,它会清除消息记录,但保留用户的身份验证状态。
您可以使用可选的 args 自定义此行为。
参数:
| 名称 | 类型 | 说明 |
|---|---|---|
args |
object? |
用于配置新会话创建的可选参数。 |
args.retainHistory |
boolean? |
用于保留历史记录的可选标志。如果设置为 true,则历史记录将被保留,否则将被清除。 |
args.clearAuthentication |
boolean? |
用于清除身份验证状态的可选标志。如果设置为 true,则身份验证状态将被清除,否则将保留。 |
返回:
void
例如:
const dfMessenger = document.querySelector('df-messenger');
dfMessenger.startNewSession({ retainHistory: true });
openChat
此函数会打开聊天。在 df-messenger-chat-bubble 元素上调用此函数即可打开聊天。如果聊天已打开,则此函数不会执行任何操作。
参数:
- 无
返回:
void
例如
const dfMessengerBubble = document.querySelector('df-messenger-chat-bubble');
dfMessengerBubble.openChat();
closeChat
此函数会关闭聊天。在 df-messenger-chat-bubble 元素上调用此函数即可关闭聊天。如果聊天已关闭,则此函数不会执行任何操作。
参数:
- 无
返回:
void
例如
const dfMessengerBubble = document.querySelector('df-messenger-chat-bubble');
dfMessengerBubble.closeChat();
openMinChat

此函数会以最小化版本打开聊天窗口。在 df-messenger-chat-bubble 元素上调用此函数即可打开最小化聊天。如果聊天已最小化,则此函数不会执行任何操作。
参数:
| 名称 | 类型 | 说明 |
|---|---|---|
args |
object? |
用于配置最小化聊天的可选参数 |
args.anchor |
string? |
用于配置最小化聊天打开位置的可选 anchor。与聊天气泡元素上的 anchor 属性的逻辑相同。默认值为 left-top。 |
args.showActorImages |
boolean? |
用于显示参与者图片(如果在 df-messenger-chat-bubble 元素上指定)的可选标志。默认值为 false。 |
示例:
const dfMessengerChatBubble = document.querySelector('df-messenger-chat-bubble');
dfMessengerChatBubble.openMinChat({
anchor: 'top-left'
});
closeMinChat
关闭最小化聊天。在 df-messenger-chat-bubble 元素上调用此函数即可关闭最小化聊天。如果聊天已关闭,则此函数不会执行任何操作。
示例:
const dfMessengerChatBubble = document.querySelector('df-messenger-chat-bubble');
dfMessengerChatBubble.closeMinChat();