调用默认的后备意图,而不是保存数据

问题描述

在使用webhook检查用户是否登录后,我试图将用户对调查表的回复保存在Firestore中。

  1. 我在输出上下文中具有“认欢迎意图” 对话流程中的“ awaiting_signin”。 Webhook代码如下所示:
app.intent('Default Welcome Intent',async (conv) => {
    conv.ask(new SignIn('To get your account details'));
})
  1. 获取登录”意图在dialogflow中没有任何上下文。此意图的代码如下所示:

app.intent('Get Signin',async (conv,params,signin) => {
    console.log("...........GET SIGN IN INTENT............")
    if (signin.status === 'OK') {
        const payload = conv.user.profile.payload;
        conv.data.userID = `${payload.email}`;
        conv.data.userName = `${payload.given_name}`;
            
        prompt = randomize(diary.o1);
        conv.ask(`<speak> ${getGreetings(moment().add(2,'hours'))} ${conv.data.userName},</speak>`);
        ask(conv,prompt,reprompt(prompt));

        output_context = "awaiting_oq1";
        conv.data.q = 'oq1';

        conv.data.output_context = output_context;
        conv.contexts.set(output_context,3);// set the output context    
        conv.data.q_text = prompt;
        conv.data.q_time = new Date().toISOString();
        conv.data.fallbackCount = 0;

    } else {
        conv.ask(new SignIn('To get your account details'));
    }

})
  1. 在意图“ oq1”中,我有一个问题的输出上下文 在对话流中为“ awaiting_oq2”,并且在webhook中具有以下代码
app.intent('oq1',{ response,enquiry_oq1 }) => {
    console.log("OQ1 response: " + response)

    conv.data.entry = {
        questionned_at: conv.data.q_time,answered_at: new Date().toISOString(),response: response,question: conv.data.q,question_text: conv.data.q_text,fallback_count: conv.data.fallbackCount
    }
    await setData(conv);// save the user response

    ... and ask the next question ...

})
  1. setData函数如下所示:
async function setData(conv) {
    const entryData = conv.data.entry;
    const promises = [];
    const input1 = await coll_ref.doc(conv.data.userID).collection(today).add(entryData);
    const input2 = await coll_ref.doc(conv.data.userID).set({ data: "empty" });

    const input_data = promises.push([input1,input2]);

}

问题是,一旦我登录,它就会抛出“认回退意图”,并且不会在数据库中保存任何内容。怎么了?

此设置在2020年8月18日之前可以正常工作。在firestore-> functions-> log中没有显示任何错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)