2017-07-11 2 views
1

J'essaie d'ajouter des compétences personnalisées à Alexa Echo Dot en utilisant VS2015 et Alexa.Net paquets de nuget. Je suis capable de télécharger la fonction lambda sur Amazon Webservice. Et je suis capable de voir les compétences. Cependant lorsque je tente de tester la fonction lambda en utilisant simulateur service, je reçois l'erreur ci-dessousAlexa Service Simulator Analyse Erreur

« Le critère d'évaluation à distance ne peut pas être appelé, ou la réponse, il est revenu était invalide. »
"parse error sur la ligne 1: Le critère d'évaluation à distance^expecting 'STRING', NUMÉRO », NULL ..."

Je ne sais pas vraiment ce qui manque ici. Voici les détails

Lambda Demande

{ 
    "session": { 
    "sessionId": "SessionId.23409e06-265b-4704-a288-8d5329a68a68", 
    "application": { 
     "applicationId": "amzn1.ask.skill.55a9cca9-02dc-4780-a55c-c1d0dee6b8c6" 
    }, 
    "attributes": {}, 
    "user": { 
     "userId": "amzn1.ask.account.AHPIWHCHA22Z3WAJGS2ABA3MQ3PTKB4HOMJIBBDILIBPWTSAAOELN45D4PIV3U75IOBDHNGJQ36OSUYK43VQKYSQFIM2OHHOORSDWM2HMLWKINLCLKU7R3SNONWM7YPWSMR5XGN6XKVZGBG4NFHDQXACZLVK57MXUOIYYV6RLLVACBMMSFPVDINMO3QKQUZVZMVR73KTCEYTCRY" 
    }, 
    "new": true 
    }, 
    "request": { 
    "type": "IntentRequest", 
    "requestId": "EdwRequestId.082b6e56-29d4-4eed-a353-e24890cfbefa", 
    "locale": "en-US", 
    "timestamp": "2017-07-11T12:19:27Z", 
    "intent": { 
     "name": "CountryInfoIntent", 
     "slots": { 
     "Country": { 
      "name": "Country", 
      "value": "France" 
     } 
     } 
    } 
    }, 
    "version": "1.0" 
} 

Fonction gestionnaire

public SkillResponse FunctionHandler(SkillRequest input, ILambdaContext context) 
{ 
    var requestType = input.GetRequestType(); 

    if (requestType == typeof(IntentRequest)) 
    { 
     return MakeSkillResponse(
      $"Hello Infotec! This is the first response from your Alexa skill using c sharp.", 
      true); 
    } 
    else 
    { 
     return MakeSkillResponse(
      $"I don't know how to handle this intent. Please say something like Alexa, ask {INVOCATION_NAME} about Canada.", 
      true); 
    } 
} 

private SkillResponse MakeSkillResponse(string outputSpeech, bool shouldEndSession, string repromptText = "Just say, tell me about Canada to learn more. To exit, say, exit.") 
{ 
    var response = new ResponseBody 
    { 
     ShouldEndSession = shouldEndSession, 
     OutputSpeech = new PlainTextOutputSpeech { Text = outputSpeech } 
    }; 

    if (repromptText != null) 
    { 
     response.Reprompt = new Reprompt() { OutputSpeech = new PlainTextOutputSpeech() { Text = repromptText } }; 
    } 

    var skillResponse = new SkillResponse 
    { 
     Response = response, 
     Version = "1.0" 
    }; 
    return skillResponse; 
} 

Répondre