我将OAuth Authorisation Flow用于我的Google操作,由于某种原因,它要求输入参数,然后启动帐户关联,然后再次要求输入参数。
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);
}
}
});
答案 0 :(得分:1)
您不应在您的SignIn事件意图中添加训练短语。如果要求登录许可的意图具有培训经验就足够了。因为它定向到actions_intent_SIGN_IN事件,然后继续在该事件上进行,除非用户尚未登录。我猜您是出于一种意图执行了这两个操作,因此这使它感到困惑,并尝试调用相同的意图并询问参数。
如果必须使用这种方式,请尝试使用上下文,以便可以在第二次调用时将参数值传递给该意图。
答案 1 :(得分:1)
我%99确保您的意图的树懒填充已关闭。
您的“创建频道意图”具有频道名称作为必需参数。如果没有Sloth-filling,则在满足每个必需参数之前,意图不会调用您的服务器/代码。
发生了什么事
要解决此问题,请执行以下一项操作:
希望有帮助。