alexa로 알림을 건너 뛰기
6898 단어 알렉사
개요
프로 액티브 이벤트 API를 사용하여 사용자에게 이벤트 (알림)를 보았습니다.
이 내용을 실제로 해보겠습니다.
프로액티브 이벤트란?
스킬에서 발급된 ClientID+ClientSecret을 이용하여
모든 사용자 또는 모든 사용자에게
알림 을 보낼 수 있습니다.
알림이 전송되면 Echo Dot의 경우, "폰"이라고 소리를 내고 LED가 노란색으로 빛나고, "알렉사, 알림은 무엇?"라고 말하면 그 상세를 확인할 수 있습니다.
해봤어
만드는 것
만드는 것
1. alexa 스킬 만들기
메인이 되는 alexa 스킬, 즉 통지하는 측의 스킬을 작성합니다.
이번에도 이 에서, 사쿠와 샘플 앱을 만듭니다.
(별로 무엇이든 괜찮습니다.)
2. subscribe 할 lambda 만들기
serverless framework를 이용하여 lambda를 만듭니다.
$ serverless create --template aws-nodejs --path subscribe-event-lambda
이벤트 알림을 받으려면 lambda의 입력 트리거로 skillId를 지정하여 alexa와 함께 작동합니다.
serverless framework에서는 events 부분을 추가하면 OK입니다.
serverless.yml
functions:
hello:
handler: handler.hello
events:
- alexaSkill: amzn1.ask.skill.xxx
3. skill.json 설정
alexa skill 측 설정으로 돌아갑니다.
이벤트 통지용의 permission 를 추가합니다.
skill.json
$ cat skill.json | jq .manifest.events
{
"publications": [
{
"eventName": "AMAZON.OrderStatus.Updated"
},
{
"eventName": "AMAZON.MessageAlert.Activated"
}
],
"subscriptions": [
{
"eventName": "SKILL_PROACTIVE_SUBSCRIPTION_CHANGED"
}
],
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:XXX:function:subscribe-event-lambda-dev-hello"
}
}
publications
에서는, 여기 를 참고에 통지하는 이벤트를 설정합니다.subscriptions
는 없어도 움직입니다만, 샘플로부터 copipe 해 둡니다.이 설명이 있으면 스킬을 활성화한 시점에서 hello lambda가 시작되는 것 같습니다.
endpoint
는 필수인 것 같습니다. 사용되는 타이밍은 알 수 없습니다.이상으로 skill측의 설정은 완료이므로 변경점을 deploy합니다.
$ ask deploy
4. 알림을 건너뜁니다.
알림을 건너뛰려면 두 개의 API를 두드려야 합니다.
1.アクセストークンの取得
에서 이용하는 clientId와 clientSecret는,alexa developer console의 「스킬」-> 「액세스 권한」-> 「Alexa 스킬 메시징」의 것을 이용합니다.
2. 通知APIを呼び出す
에서는, 지정의 유저 또는 전원의 어느쪽이든을 선택할 수 있습니다만, 이번은 지정의 유저에게 통지합니다.또한 userId의 특정은 alexa skill에 로그를 넣어 거기에서 확인하는 방법을 사용했습니다.
console.log(JSON.stringify(handlerInput.requestEnvelope, null , "\t"));
문서에는 curl을 사용하여 두드리는 예가 나열되어 있지만, 간단하게 이 코드를 사용합니다.
htps : // 기주 b. 코 m / 테쿠 토오 / 아오 코 k 보오 k / b ぉ b / 후 아츠레 / 모 dp 로아 c ゔ ぇ ゔ ぇ ts / 후 아츠레 - s /s ㅇㅔㅔㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅇㅎㅎㅎㅎ js
원래 코드를 일부 했습니다. (일부 변수를 환경 변수로 설정)
변경점
통지 해 봅니다.
(덧붙여, 예와 같이 실제 기계가 아니면 아마 움직이지 않을지도 모릅니다. iPhone의 alexa 앱이라고 안 될지도 모릅니다.)
# 環境変数をセットします。
$ export CLIENT_ID=hogehoge
$ export CLIENT_SECRET=fugafuga
$ export USER_ID=amzn1.ask.account.xxx
$ node order.js #通知します。
기타
htps : // 기주 b. 코 m / 오 / 아 / 코 호 k k / t ree / ma s r / 후 아츠레 - s
Reference
이 문제에 관하여(alexa로 알림을 건너 뛰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tekuto_tk/items/84e7f9c5a710e364e2b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)