Dialogflow es 谷歌行动在账户链接前询问参数
我正在使用我的谷歌行动,出于某种原因,它要求参数,然后启动帐户链接,然后再次要求参数 答复示例: 代码 对话流Dialogflow es 谷歌行动在账户链接前询问参数,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,我正在使用我的谷歌行动,出于某种原因,它要求参数,然后启动帐户链接,然后再次要求参数 答复示例: 代码 对话流 您不应该在登录事件意图中添加培训短语。如果请求signin许可的意图已经足够训练phares了。因为它在事件中指向动作、意图、签名,并在那个里继续,除非用户还并没有登录。我猜你在一个意图中做了这两个动作,所以这会使它变得混乱,并试图调用相同的意图并请求参数 如果必须使用这种方式,请尝试使用上下文,以便在第二次调用时将参数值传递给此意图。您不应在登录事件意图中添加培训短语。如果请求
您不应该在登录事件意图中添加培训短语。如果请求signin许可的意图已经足够训练phares了。因为它在事件中指向动作、意图、签名,并在那个里继续,除非用户还并没有登录。我猜你在一个意图中做了这两个动作,所以这会使它变得混乱,并试图调用相同的意图并请求参数
如果必须使用这种方式,请尝试使用上下文,以便在第二次调用时将参数值传递给此意图。您不应在登录事件意图中添加培训短语。如果请求signin许可的意图已经足够训练phares了。因为它在事件中指向动作、意图、签名,并在那个里继续,除非用户还并没有登录。我猜你在一个意图中做了这两个动作,所以这会使它变得混乱,并试图调用相同的意图并请求参数
如果必须使用这种方式,请尝试使用上下文,以便在第二次调用时将参数值传递给此intent。我确信您的intent的懒惰填充已关闭 您的创建通道意图将channelname作为必需参数。如果没有Sloth填充,在满足所有必需参数之前,intents不会调用您的服务器/代码 发生的情况是:
- 在意图底部启用树懒填充
- 添加输出上下文并将#[context-NAME].channelname作为默认值添加到channelname参数(不带手镯)。当鼠标悬停在参数上时,可以通过单击出现的3点来指定默认值李>
- 从创建频道意图中拆分捕获事件中的符号
希望有帮助。我确信你的意图的懒惰填充已经结束 您的创建通道意图将channelname作为必需参数。如果没有Sloth填充,在满足所有必需参数之前,intents不会调用您的服务器/代码 发生的情况是:
- 在意图底部启用树懒填充
- 添加输出上下文并将#[context-NAME].channelname作为默认值添加到channelname参数(不带手镯)。当鼠标悬停在参数上时,可以通过单击出现的3点来指定默认值李>
- 从创建频道意图中拆分捕获事件中的符号
希望有帮助。请不要将代码作为图像发布-这会使阅读变得非常困难,如有必要,请复制,以便我们可以尝试重现您的问题。Dialogflow意图的屏幕截图非常有用,但这是您希望在处理过程中涉及到的唯一意图吗?@Captier有比这个更多的意图,但都是相同的,因此如果我们能够解决这个意图中的问题,它将几乎解决我正在使用的所有其他意图中的问题。嗯,这将是有用的,看看什么导致它发送“你能给我的渠道名称”(第一次和第二次)。请不要张贴你的代码作为一个图像-这使它很难阅读,如果必要的话,复制,以便我们可以尝试重现你的问题。Dialogflow意图的屏幕截图非常有用,但这是您希望在处理过程中涉及到的唯一意图吗?@Captier有比这个更多的意图,但都是相同的,因此如果我们能够解决这个意图中的问题,它将几乎解决我正在使用的所有其他意图中的问题。嗯,看看是什么导致它发送“你能给我Channelname吗”(第一次和第二次)。谢谢你的详细回答@YemG,我很快会尝试并报告发生的情况。请注意,即使用户拒绝,事件中的行动\u意图\u签名\u也会触发。我建议您添加一个新的非必需参数,并将#actions_intent_SIGN_IN.SIGN_IN作为值,以获得用户响应,并相应地更改代码。编辑:每次对话只能呼叫登录一次。如果用户拒绝,在会话重新启动之前,您不能要求他再次登录。因此,要么结束对话,要么保存用户响应。也许因为您已经了解了很多,您介意将此函数添加到这个开源项目中吗。如果你不能,没问题。谢谢你的详细回答@YemG,我会很快尝试并报告发生的情况。请注意,即使用户拒绝,事件中的行为\u意图\u签名\u也会触发。我建议您添加一个新的非必需参数,并将#actions_intent_SIGN_IN.SIGN_IN作为值,以获得用户响应,并相应地更改代码。编辑:每次对话只能呼叫登录一次。如果用户拒绝,在会话重新启动之前,您不能要求他再次登录。因此,要么结束对话,要么保存用户r
app.intent('Create Channel Intent', async (conv, params) => {
if (!conv.user.access.token) {
conv.ask(new SignIn());
} else {
var locale = conv.user.locale;
if (locale === 'hi-IN') {
var accessToken = conv.user.access.token;
var channelNameRaw = params.channelname;
var channelNameData = await helperFunctions.hinditranslate(channelNameRaw);
var channelNameLwr = channelNameData.toLowerCase();
var channelName = helperFunctions.replaceWhitespacesFunc(channelNameLwr);
const headers = await helperFunctions.login(accessToken);
const speechText = await helperFunctions.createChannel(channelName, headers);
conv.ask(speechText);
} else {
var accessToken = conv.user.access.token;
var channelNameRaw = params.channelname;
var channelNameData = channelNameRaw.toLowerCase();
var channelName = helperFunctions.replaceWhitespacesFunc(channelNameData);
const headers = await helperFunctions.login(accessToken);
const speechText = await helperFunctions.createChannel(channelName, headers);
conv.ask(speechText);
}
}
});