代码之家  ›  专栏  ›  技术社区  ›  James Ives

链接许可意图

  •  1
  • James Ives  · 技术社区  · 7 年前

    我有两个意图:

    app.intent('ask_for_permission', async (conv) => {
      return conv.ask(new Permission({
        context: 'to get your location',
        permissions: 'DEVICE_PRECISE_LOCATION',
      })); 
    })
    
    
    app.intent('confirm_permissions', async (conv, params, confirmationGranted) => {
      conv.ask(`I think you gave me permission? ${params} ${confirmationGranted}`)
    })
    

    ask_for_permission 意图紧随其后 confirm_permissions 像这样:

    Dialogflow UI

    但是,每当我触发ask_for_权限意图时,就会询问用户是否想要共享他们的位置,但会与其中一个进行响应 yes no 实际上不会触发用户进入下一个意图。

    enter image description here

    在模拟器中:

    enter image description here

    我哪里出了问题?我想触发第二个意图,如果用户确认使用它,就能够获得用户的位置数据。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Prisoner    7 年前

    我想你在这里混淆了一些概念。看起来像你的 ask_for_permission 意图正在触发 Permission helper

    作为其中的一部分,您正在设置 confirm_permissions 上下文 . 上下文与意图不同。按照您的方式设置输出上下文的意思是,您处于一个名为“confirm_permissions”的状态,并且在处理响应时可能会评估仅应在此状态下触发的意图。

    确认\u权限 . 在Dialogflow中,响应将是 actions_intent_PERMISSION 事件,您可以创建要处理的意图。它可能看起来像这样。

    enter image description here

    值得注意的是:

    • 意图的名称是你想要的,就像其他意图一样。
    • 因为我们正在指定一个事件,所以 使用训练短语。

    在实现方面,您的代码看起来应该可以工作。

    推荐文章