미리 알림 등록
9516 단어 알렉사
개요
Alexa 스킬로 리마인더를 등록하는 샘플 스킬입니다.
(알림 정보의 취득이나 삭제는 없습니다)
htps : //에서 ゔぇぺぺr. 아마존. 이 m/쟈/도 cs/s마피/아아-레민으로 rs-오오 rゔぃ에 w. HTML
내용
도서관
$ npm ls --depth=0
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
index.js 전반
const Alexa = require('ask-sdk-core');
const { getRandomMessage, isLaunchRequest, isMatchedIntent } = require('ask-utils');
const { ReminderRequest } = require('ask-sdk-model');
const SetReminderHandler = {
canHandle(handlerInput) {
return isLaunchRequest(handlerInput)
|| isMatchedIntent(handlerInput, 'SetReminderIntent')
},
async handle(handlerInput) {
const { serviceClientFactory, responseBuilder } = handlerInput;
const speechText = '1分後にリマインダーをセットしました。';
const client = serviceClientFactory.getReminderManagementServiceClient();
const request = {
trigger: {
type: "SCHEDULED_RELATIVE",
offsetInSeconds: '60'
},
alertInfo: {
spokenInfo: {
content: [{
locale: "ja-JP",
text: "リマインダーのテストです"
}]
}
},
pushNotification: {
status: "DISABLED"
}
};
try {
const response = await client.createReminder(request);
return responseBuilder
.speak(speechText)
.getResponse();
} catch (error) {
console.log(error);
return responseBuilder
.speak("すいません、エラーが発生しました")
.getResponse();
}
}
};
handlerInput.serviceClientFactory.getReminderManagementServiceClient()
에서 알림을 위한 클라이언트를 가져옵니다.
client#method
요청
client에 구현된 메소드 목록과 request를 참고로 API를 두드린다.
방법 목록
class ReminderManagementServiceClient extends BaseServiceClient {
deleteReminder(alertToken: string): Promise<void>;
getReminder(alertToken: string): Promise<services.reminderManagement.GetReminderResponse>;
updateReminder(alertToken: string, reminderRequest: services.reminderManagement.ReminderRequest): Promise<services.reminderManagement.ReminderResponse>;
deleteReminders(): Promise<void>;
getReminders(): Promise<services.reminderManagement.GetRemindersResponse>;
createReminder(reminderRequest: services.reminderManagement.ReminderRequest): Promise<services.reminderManagement.ReminderResponse>;
}
index.js 후반
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
SetReminderHandler,
HelpHandler,
ExitHandler,
FallbackHandler,
SessionEndedRequestHandler
)
.addErrorHandlers(ErrorHandler)
.withApiClient(new Alexa.DefaultApiClient())
.lambda();
.withApiClient(new Alexa.DefaultApiClient())
가 중요합니다.
이제 handlerInput
에서 미리 알림 클라이언트를 가져올 수 있습니다.accessToken
도 설정되어 있으므로 편리합니다.
skill.json
"manifest": {
"permissions": [
{
"name": "alexa::alerts:reminders:skill:readwrite"
}
],
...
스킬의 permission도 추가해야 합니다.
이상이, 기동하면 1분 후에 리마인더가 세트 되는 샘플 앱이 됩니다.
하마리 포인트
도서관
$ npm ls --depth=0
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
index.js 전반
const Alexa = require('ask-sdk-core');
const { getRandomMessage, isLaunchRequest, isMatchedIntent } = require('ask-utils');
const { ReminderRequest } = require('ask-sdk-model');
const SetReminderHandler = {
canHandle(handlerInput) {
return isLaunchRequest(handlerInput)
|| isMatchedIntent(handlerInput, 'SetReminderIntent')
},
async handle(handlerInput) {
const { serviceClientFactory, responseBuilder } = handlerInput;
const speechText = '1分後にリマインダーをセットしました。';
const client = serviceClientFactory.getReminderManagementServiceClient();
const request = {
trigger: {
type: "SCHEDULED_RELATIVE",
offsetInSeconds: '60'
},
alertInfo: {
spokenInfo: {
content: [{
locale: "ja-JP",
text: "リマインダーのテストです"
}]
}
},
pushNotification: {
status: "DISABLED"
}
};
try {
const response = await client.createReminder(request);
return responseBuilder
.speak(speechText)
.getResponse();
} catch (error) {
console.log(error);
return responseBuilder
.speak("すいません、エラーが発生しました")
.getResponse();
}
}
};
handlerInput.serviceClientFactory.getReminderManagementServiceClient()
에서 알림을 위한 클라이언트를 가져옵니다.client#method
요청
client에 구현된 메소드 목록과 request를 참고로 API를 두드린다.
방법 목록
class ReminderManagementServiceClient extends BaseServiceClient {
deleteReminder(alertToken: string): Promise<void>;
getReminder(alertToken: string): Promise<services.reminderManagement.GetReminderResponse>;
updateReminder(alertToken: string, reminderRequest: services.reminderManagement.ReminderRequest): Promise<services.reminderManagement.ReminderResponse>;
deleteReminders(): Promise<void>;
getReminders(): Promise<services.reminderManagement.GetRemindersResponse>;
createReminder(reminderRequest: services.reminderManagement.ReminderRequest): Promise<services.reminderManagement.ReminderResponse>;
}
index.js 후반
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
SetReminderHandler,
HelpHandler,
ExitHandler,
FallbackHandler,
SessionEndedRequestHandler
)
.addErrorHandlers(ErrorHandler)
.withApiClient(new Alexa.DefaultApiClient())
.lambda();
.withApiClient(new Alexa.DefaultApiClient())
가 중요합니다.이제
handlerInput
에서 미리 알림 클라이언트를 가져올 수 있습니다.accessToken
도 설정되어 있으므로 편리합니다.skill.json
"manifest": {
"permissions": [
{
"name": "alexa::alerts:reminders:skill:readwrite"
}
],
...
스킬의 permission도 추가해야 합니다.
이상이, 기동하면 1분 후에 리마인더가 세트 되는 샘플 앱이 됩니다.
하마리 포인트
ask simulate
skillBuilder.withApiClient()
설정 필요 apiAccessToken
은 한 번만 사용 가능apiAccessToken
로 2회 두드리면 안되는 것 같습니다. 한마디
이벤트 구독이라는 기능도 있기 때문에 여기도 걱정됩니다
Reference
이 문제에 관하여(미리 알림 등록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tekuto_tk/items/687f954c6d9ee9a2abce
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(미리 알림 등록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tekuto_tk/items/687f954c6d9ee9a2abce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)