Beispiel #1
0
        //ご自分で追加したインテントに合わせて名前や処理を変更してください。
        private SkillResponse DelegateAnyoneIntentHandler(SkillRequest skillRequest)
        {
            var intentRequest = skillRequest.Request as IntentRequest;
            var phrase        = intentRequest.Intent.Slots[_slotName_Phrase].Value;

            var speechText = "";

            var skillResponse = new SkillResponse
            {
                Version  = "1.0",
                Response = new ResponseBody()
            };


            //"phrase"スロットに何も入っていなかった場合
            if (string.IsNullOrWhiteSpace(phrase))
            {
                speechText = "すみません。聞き取れませんでした。もう一度言ってください。";

                skillResponse.Response.OutputSpeech = new PlainTextOutputSpeech
                {
                    Text = speechText
                };
                skillResponse.Response.Reprompt = new Reprompt
                {
                    OutputSpeech = new PlainTextOutputSpeech()
                    {
                        Text = speechText
                    }
                };

                return(skillResponse);
            }

            speechText = Phrase.ComposeAskSmartSpeakerText(phrase);

            if (string.IsNullOrWhiteSpace(speechText))
            {
                speechText = "すみません。聞き取れませんでした。もう一度言ってください。" +
                             "誰に、何を、訊きたいのか言ってください。";

                skillResponse.Response.OutputSpeech = new PlainTextOutputSpeech
                {
                    Text = speechText
                };
                skillResponse.Response.Reprompt = new Reprompt
                {
                    OutputSpeech = new PlainTextOutputSpeech()
                    {
                        Text = speechText
                    }
                };

                return(skillResponse);
            }

            skillResponse.Response.OutputSpeech = new PlainTextOutputSpeech
            {
                Text = speechText
            };
            skillResponse.Response.Card = new SimpleCard
            {
                Title   = _skillName,
                Content = speechText
            };
            skillResponse.Response.ShouldEndSession = true;

            return(skillResponse);
        }