如何解决Slack 中的 Dialogflow 按钮从键入的条目生成单独的会话
我的 Dialogflow 会话似乎随着我手动输入文本或单击按钮而改变。我的后端函数在 Dialogflow 中显示的 slack 负载中生成按钮。
按钮显示正常并按预期工作,除非我需要输出上下文和现有会话中的某些内容。问题似乎是当我在 Slack 中手动输入文本时,它是一个会话,而当我单击一个按钮时,它是另一个会话。我不知道为什么会这样,但我显然希望它们被视为一个会话。
我创建了一个简单的意图和 webhook 调用,它在调用时简单地返回当前会话 ID。我创建了一个“什么会话”意图。我创建了一个“what session”按钮,其值为“what session”。当我输入“what session”(或“which session”)时,会话会作为某个会话返回,并按预期带有按钮。当我点击“什么会话”按钮时,我得到相同的结果,除了它是一个不同的会话。每次点击按钮时,我都在一个会话中,当我再次手动输入“什么会话”时,我得到了原始会话。
在历史记录中,您可以看到两个不同的对话流。
这是按钮的格式(非常简单)。后端函数还使用会话值填充“文本”字段,但不会更改任何其他内容。
{
"slack": {
"text": "","attachments": [
{
"blocks": [
{
"type": "actions","elements": [
{
"type": "button","text": {
"type": "plain_text","text": "test"
},"value": "test"
},{
"type": "button","text": "what session"
},"value": "what session"
}
]
}
]
}
]
}
}
以下是 Dialogflow 中显示两个独立流的历史记录:
解决方法
Google 支持在这方面帮助了我 - 谢谢! 解决方案是将请求 URL 添加到交互性和快捷方式部分。
现在,想象一下当我重新阅读说明中的最后一步来执行此操作时的尴尬:
“要使用富消息,请复制下面的‘事件请求 URL’值并将其粘贴到 Slack 应用设置的交互式消息部分的‘请求 URL’字段中。”
然而,在我的辩护中,我想知道我怎么会错过两次(因为我重新设置了所有内容以进行测试以查看我错过了什么)。我知道我会这样做。奇怪的是,当我完成 Slack 中的步骤时,我意识到我的更改没有保存在该页面上。我点击了“Save Changes”并假设它已经保存,但按钮没有变成绿色所以没有保存更改。因此,我对遇到上述问题的任何人的建议是确保他们的所有更改都保存在 Slack 中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。