61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using AlexaSkillsKit.Speechlet;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using AlexaSkillsKit.Authentication;
|
|
using AlexaSkillsKit.Json;
|
|
using System.Threading.Tasks;
|
|
using AlexaSkillsKit.UI;
|
|
using System.Diagnostics;
|
|
|
|
namespace alexa.dev.excuses
|
|
{
|
|
public class ExcuseResponse : Speechlet
|
|
{
|
|
|
|
|
|
public override SpeechletResponse OnIntent(IntentRequest intentRequest, Session session)
|
|
{
|
|
return CompileResponse();
|
|
}
|
|
|
|
public override SpeechletResponse OnLaunch(LaunchRequest launchRequest, Session session)
|
|
{
|
|
return CompileResponse();
|
|
}
|
|
|
|
public override bool OnRequestValidation(SpeechletRequestValidationResult result, DateTime referenceTimeUtc, SpeechletRequestEnvelope requestEnvelope)
|
|
{
|
|
if(!string.IsNullOrWhiteSpace(requestEnvelope?.Session?.Application?.Id) && !requestEnvelope.Session.Application.Id.Equals("amzn1.ask.skill.2327a089-3c06-47f7-accb-4b627136b652"))
|
|
{
|
|
WebApiApplication.telemetry.TrackEvent("Request envelope does not contain the appid");
|
|
return false;
|
|
}
|
|
return base.OnRequestValidation(result, referenceTimeUtc, requestEnvelope);
|
|
}
|
|
|
|
public override void OnSessionEnded(SessionEndedRequest sessionEndedRequest, Session session)
|
|
{
|
|
}
|
|
|
|
public override void OnSessionStarted(SessionStartedRequest sessionStartedRequest, Session session)
|
|
{
|
|
}
|
|
public static SpeechletResponse CompileResponse()
|
|
{
|
|
var excuse = GetExcuse();
|
|
return new SpeechletResponse()
|
|
{
|
|
OutputSpeech = new PlainTextOutputSpeech() { Text = excuse },
|
|
ShouldEndSession = true
|
|
};
|
|
}
|
|
public static string GetExcuse()
|
|
{
|
|
// Setup the configuration to support document loading
|
|
var item = new Random().Next(0, Excuses.ExcuseList.Count);
|
|
return Excuses.ExcuseList[item];
|
|
}
|
|
}
|
|
} |