addDelegateDirective 和意图的问题

Problem with addDelegateDirective and intent

所以我在构建我的 alexa 技能时遇到了问题,我需要将一个 Intent 链接到我的 Launchrequest,它适用于此

  return handlerInput.responseBuilder
      .addDelegateDirective({
          name: 'UserLogin',
          confirmationStatus: 'NONE',
          slots: {}
      })
      .speak("You need to login!")
      .withShouldEndSession(false)
      .getResponse();

但在我的链接意图中,我有 2 个槽位需要填充,但是 alexa 只要求一个意图两次然后什么都没有,它不要求第二个意图?

这是我在 lambda 中的意图

const LoginUserIntent= {
   canHandle(handlerInput) {
   const request = handlerInput.requestEnvelope.request;
   return request.type === 'IntentRequest' &&
   request.intent.name === 'UserLogin' &&
   request.dialogState !== 'COMPLETED';
      },
     handle(handlerInput) {
     return handlerInput.responseBuilder
     .getResponse()
  },
}

知道我怎样才能使这个工作吗?

我知道这已经很长时间了,但在这种情况下,您必须在 addDelegateDirective() 的 slots 参数中设置所有插槽。

这是一个示例代码:

.addDelegateDirective({
          name: 'UserLogin',
          confirmationStatus: 'NONE',
          slots: {
              slot01: {
                         name: 'slot01',
                         confirmationStatus: 'NONE',
                         type: 'AMAZON.NUMBER',
                         source: 'USER'
                      }
          }
      })

您还必须设置插槽类型。周围有很多样本缺少此属性,至少在我的情况下,它不起作用。

如果有帮助,请告诉我。