让我的谷歌主页验证口头代码

时间:2018-01-03 09:58:33

标签: actions-on-google dialogflow

我想建立一个带有口令验证的应用。

我可以在之前设置对话框中的cde,juste验证它。

GH : "For continue, give me the code"
Me : " 1 2 3 4"
GH " Access granted" / "Access denied"

但是如何在对话框流中获取输入?

2 个答案:

答案 0 :(得分:3)

首先 - 考虑一下你是否真的想要这样做。让某人大声说出密码并不是非常安全,并且在多用户环境中增加了非常少的额外安全性。

这有两个阶段 - 第一个是设置一个Intent来处理它,特别是你想要的格式,第二个是处理和验证这是正确的代码。

设置意图

我们需要两个意图 - 一个提示并设置一个上下文,以便我们知道我们需要验证代码,并且需要检查代码。

提示意图可能如下所示:

enter image description here

这里值得注意的部分是它正在设置输出上下文。我们马上就会明白为什么这很重要。

处理数字输入的那个可能如下所示:

enter image description here

这个还有很多。首先请注意,我们需要一个与上一个Intent的输出上下文匹配的输入上下文。这意味着只有在设置了Context的情况下,此Intent才应匹配。这让我们可以在谈话中的其他地方讨论数字,而不会触发此验证。

接下来,我们要查找与@sys.number-sequence内置实体类型匹配的数字序列。还有其他可能对您有用的实体类型 - 请参阅documentation for details并选择一个有意义或实验的实体,以找到最适合您的情况。

最后,我们将使用webhook进行实现,以验证代码是否正确。哪个是下一个会议......

验证代码

虽然有办法在没有webhook的情况下进行验证,但实际上这是最直接的方法。如果您使用Google的库来处理来自Dialogflow的输入,您可以使用类似

的内容获取值
var code = app.getArgument('number-sequence');

使用参数名称。如果您没有使用该库,可以在result.parameters.number-sequence的JSON中找到它。

然后,您可以根据需要验证此代码,并返回一条消息,指出它是否正确。

答案 1 :(得分:1)

如果您想使用一系列数字作为代码,可以使用@sys.number-sequence实体识别它,然后检查网络链中的代码。

另一种方法是简单地创建一个自定义实体“代码”,其条目为“1234”。