2017-10-15 7 views
0

Nous vous remercions de votre aide à l'avance! J'ai une intention et une valeur d'emplacement personnalisée pour cette intention, la valeur d'emplacement est appelée "événement" qui est une valeur de ma liste "LIST_OF_EVENTS".Impossible d'obtenir l'ID de la demande interne

Dans cette liste, j'ai beaucoup d'options pour les slots, mais plus important encore, j'ai beaucoup de synonymes pour chaque valeur de slot. Pour les traiter tout de même, je voudrais utiliser l'identifiant que j'ai attribué à chaque slot. Je les ai mis comme 0-11. Obtenir cet identifiant est important car, basé sur cet identifiant, il définit la partie d'un fichier JSON que je redonne à l'utilisateur. Le problème ici est que je n'arrive pas à comprendre comment obtenir cette identification dans mon code, j'ai fait beaucoup de recherches et j'ai parcouru beaucoup de documentation mais je n'arrive toujours pas à obtenir l'ID.

J'ai essayé:

var id = alexa.event.request.intent.slots.event.resolutions.resolutionsPerAuthority[].values[].value.id; 

ainsi que beaucoup d'autres choses. Quand je regarde la demande d'intention envoyer via la plate-forme de test, amazon fournit que je n'arrive pas à trouver cet objet de résolution dans ma demande d'intention. Il n'y a rien de tel. Cependant, dans leur documentation, sur plusieurs pages, il montre et se réfère à cet objet. Here is the link to the documentation.

Ma demande qu'Amazon crée est

{ 
    "session": { 
    "new": false, 
    "sessionId": "SessionId.4bce2f23-d11e-4022-b6d1-b91aec14b9d6", 
    "application": { 
     "applicationId": "amzn1.ask.skill.e0cc33bb-4ad7-4bbb-91e8-a0eab852a49c" 
    }, 
    "attributes": {}, 
    "user": { 
     "userId": "amzn1.ask.account.AF53KNANELPR77LPYI7GAED6MM2EIVTFZZRJQ3FGLKW7HMRWLEEET6T7MEY5FLD67JO4OZNTTRFB2XDH6J2X2GGHZKOM4UDW6WKP6GLCYW3OI7WCHW2HTEYNQQWUF6TARFBX64WUIAAUL6RFCZ663P4RKGJ43PEXQ43G4BSA3KWSKKRUPCXJWFLWUSDAHD6LMAQKXCPREDMKHQI" 
} 
    }, 
    "request": { 
"type": "IntentRequest", 
"requestId": "EdwRequestId.0171880d-8006-47d9-b17b-52e1f431f5f4", 
"intent": { 
    "name": "WhenIsBLANK", 
    "slots": { 
    "event": { 
     "name": "event", 
     "value": "dream to fly" 
    } 
    } 
}, 
"locale": "en-US", 
"timestamp": "2017-10-14T20:24:43Z" 
    }, 
    "context": { 
"AudioPlayer": { 
    "playerActivity": "IDLE" 
}, 
"System": { 
    "application": { 
    "applicationId": "amzn1.ask.skill.e0cc33bb-4ad7-4bbb-91e8-a0eab852a49c" 
    }, 
    "user": { 
    "userId": "amzn1.ask.account.AF53KNANELPR77LPYI7GAED6MM2EIVTFZZRJQ3FGLKW7HMRWLEEET6T7MEY5FLD67JO4OZNTTRFB2XDH6J2X2GGHZKOM4UDW6WKP6GLCYW3OI7WCHW2HTEYNQQWUF6TARFBX64WUIAAUL6RFCZ663P4RKGJ43PEXQ43G4BSA3KWSKKRUPCXJWFLWUSDAHD6LMAQKXCPREDMKHQI" 
    }, 
    "device": { 
    "supportedInterfaces": {} 
    } 
} 
    }, 
    "version": "1.0" 
} 

S'il vous plaît laissez-moi savoir si quelqu'un a des idées sur la façon de résoudre ce problème, je vous remercie!

Répondre

0

Les données d'emplacement envoyées à votre lambda seront une chaîne, par exemple "dream to fly" comme indiqué dans la demande que vous avez envoyée.

Il appartiendra à votre code lambda de comparer cette chaîne avec vos valeurs LIST_OF_EVENTS pour déterminer celle qui a été envoyée. Ceci est typiquement fait en itérant à travers un tableau de chaînes contenant des valeurs attendues, mais peut également être fait en utilisant une instruction switch avec des cas pour chaque valeur possible. N'oubliez pas de gérer les valeurs sans correspondance, car ce que vous obtenez dans la valeur de l'emplacement n'est pas ce que vous attendez.

Vous pouvez ensuite utiliser cet index pour sélectionner votre réponse.

Par exemple:

var slot = request.intent.slot.event.value; 
var index; 
for(index=0; index<NUM_SLOT_VALUES; index++) { 
    if(knownValues[i] == slot) { 
     break; 
    } 
} 
// index is now the index of the matching value, or NUM_SLOT_VALUES if not found 

Vous pouvez trouver beaucoup d'informations en ligne sur la scène des boucles en javascript, comme celui-link.

+0

Merci beaucoup pour votre aide, je suis sûr de vérifier ce lien. Merci pour l'aide! –