アレクサスキルの吾輩のテンプレート
われのスキルを作る時に使うテンプレート
インテントスキーマ
{
"intents": [
{
"slots": [
{
"name": "Me",
"type": "YourName"
}
],
"intent": "StrongestIntent"
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.StopIntent"
},
{
"intent": "AMAZON.CancelIntent"
}
]
}
Lambda側
"use strict";
const Alexa = require('alexa-sdk');
// ステートの定義
const state = {
sampleState: '_sample'
};
//まずはここが呼ばれる
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
//dynamodbを使うなら下をコメントアウト
//alexa.dynamoDBTableName = 'SampleSkillTable'; //使用するテーブル名に変更
// alexa.appId = process.env.APP_ID;
alexa.registerHandlers(handlers, sampleHandler); //使用するハンドラーを書き込む。
alexa.execute();
};
var handlers = {
// スキル起動名だけで起動されたときに呼ばれる
'LaunchRequest': function () {
var message = "起動名だけでこのスキルを開いたときに呼ばれる";
this.emit(":tell", message);
},
// ヘルプとか言われたときに発動。スキルの説明を言わせる。必須
'AMAZON.HelpIntent': function () {
var message = "このスキルの説明";
this.emit(':ask', message);
},
// 自分で定義したインテント
"SampleIntent": function() {
this.handler.state = state.EmotionState;
this.emitWithState("EmotionIntent");
},"AMAZON.StopIntent": function() {
this.emit(":tell", "ストップなどと言われた時");
},"AMAZON.CancelIntent": function() {
this.emit(":tell", "キャンセルなどと言われた時");
},
'Unhandled': function() {
this.emit(':ask', reprompt, reprompt);
},
"SessionEndedRequest": function(){
// ユーザーが「終了して」と、言った時
// ユーザーが何も応答しなかった時
}
};
// ステートを定義
var sampleHandler = Alexa.CreateStateHandler(state.EmotionState, {
"SampleIntent": function(){
// dynamoDBを使用していたらステートの情報も保存されてしまうので削除
this.handler.state = "";
this.attributes['STATE'] = undefined;
},
// 今いるステートでは呼べないが、インテントスキーマには書いてあるインテントが呼ばれたとき
'Unhandled': function() {
this.emit(':ask', reprompt, reprompt);
},"AMAZON.StopIntent": function() {
this.emit(":tell", "ストップなどと言われた時");
},"AMAZON.CancelIntent": function() {
this.emit(":tell", "キャンセルなどと言われた時");
}
});
{
"intents": [
{
"slots": [
{
"name": "Me",
"type": "YourName"
}
],
"intent": "StrongestIntent"
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.StopIntent"
},
{
"intent": "AMAZON.CancelIntent"
}
]
}
"use strict";
const Alexa = require('alexa-sdk');
// ステートの定義
const state = {
sampleState: '_sample'
};
//まずはここが呼ばれる
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
//dynamodbを使うなら下をコメントアウト
//alexa.dynamoDBTableName = 'SampleSkillTable'; //使用するテーブル名に変更
// alexa.appId = process.env.APP_ID;
alexa.registerHandlers(handlers, sampleHandler); //使用するハンドラーを書き込む。
alexa.execute();
};
var handlers = {
// スキル起動名だけで起動されたときに呼ばれる
'LaunchRequest': function () {
var message = "起動名だけでこのスキルを開いたときに呼ばれる";
this.emit(":tell", message);
},
// ヘルプとか言われたときに発動。スキルの説明を言わせる。必須
'AMAZON.HelpIntent': function () {
var message = "このスキルの説明";
this.emit(':ask', message);
},
// 自分で定義したインテント
"SampleIntent": function() {
this.handler.state = state.EmotionState;
this.emitWithState("EmotionIntent");
},"AMAZON.StopIntent": function() {
this.emit(":tell", "ストップなどと言われた時");
},"AMAZON.CancelIntent": function() {
this.emit(":tell", "キャンセルなどと言われた時");
},
'Unhandled': function() {
this.emit(':ask', reprompt, reprompt);
},
"SessionEndedRequest": function(){
// ユーザーが「終了して」と、言った時
// ユーザーが何も応答しなかった時
}
};
// ステートを定義
var sampleHandler = Alexa.CreateStateHandler(state.EmotionState, {
"SampleIntent": function(){
// dynamoDBを使用していたらステートの情報も保存されてしまうので削除
this.handler.state = "";
this.attributes['STATE'] = undefined;
},
// 今いるステートでは呼べないが、インテントスキーマには書いてあるインテントが呼ばれたとき
'Unhandled': function() {
this.emit(':ask', reprompt, reprompt);
},"AMAZON.StopIntent": function() {
this.emit(":tell", "ストップなどと言われた時");
},"AMAZON.CancelIntent": function() {
this.emit(":tell", "キャンセルなどと言われた時");
}
});
Author And Source
この問題について(アレクサスキルの吾輩のテンプレート), 我々は、より多くの情報をここで見つけました https://qiita.com/imajoriri/items/94c1ac4f325de54abe64著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .