Alexa Reminder skill에서 알림을 만들 때 Invalid Token, DEVICE_NOT_SUPPORTED, UNAUTHORIZED가 된 경우의 대책

1990 단어 SKILL알렉사Node.js
Alexa의 Reminder 기능이 공개되었지만, 저도 Reminder 스킬을 만들려고 했지만 꽤 잘 작동하지 않고 주의점을 정리해 둡니다.

권한 설정



Reminder 기능을 사용하려면 두 가지 권한 설정이 필요합니다.
- Alexa developer console에 대한 액세스 권한 부여
- Alexa 앱에서 액세스 권한 부여

Alexa developer console의 액세스 권한 부여는 액세스 권한의 위치에서 아래 그림의 스위치를 ON으로 함으로써 권한을 부여할 수 있습니다.


"Alexa 앱에서 액세스 권한 부여"는 스마트 폰 (나의 경우 iPhone이지만 아마도 스마트 폰도 동일하다고 생각합니다)의 Alexa 앱상의 메뉴의 "스킬 게임"에서 유효한 스킬 탭으로 Reminder를 설정 하는 기술을 찾고 거기에서 허용합니다.

이 화면에서 "설정"을 누르면 아래 그림이 표시됩니다. 여기에서 Reminder 기능 활성화를 설정할 수 있습니다.


실은, 이 「Alexa 앱상에서 액세스 권한 부여」를 모르고, 곤란하고 있었습니다. 궁극적으로 스킬 게임 메뉴에서 '개발 중'이라는 곳을 선택하면 개발중인 스킬을 설정할 수 있고 Reminder를 허가할 수 있었습니다.

Amazon echo에서의 구현 필요성



Reminder의 샘플을 보면서, 우선은 만들어 보려고 처음으로 보았다. 그러나 AWS Lamdba에서 Reminder 스킬을 테스트해도 아무래도 "Invalid Token"이 나오고 약해졌습니다.
이 이유는 Reminder를 설정하는 JSON의 Authorization에서 설정하는 액세스 토큰이 잘못되었기 때문입니다. Lamdba 테스트에서 작성한 JSON은 Alexa developer console에서 실행할 때 작성된 JSON 파일을 그대로 복사하여 사용했지만 액세스 토큰은 변경할 수있는 값이므로 그대로 사용하면 "Invalid Token '가 되어 버리는 것 같습니다.

그렇다면, Alexa developer console에서 시험해 보았습니다만, 여기에서는 UNAUTHORIZED가 나와 버려 곤란했습니다. 그렇다면 아이폰의 알렉사 앱에서는 어떨까라고 시도했지만 역시 마찬가지였습니다.
결국, 위에 쓴 「Alexa 앱상에서의 액세스 권한 부여」가 되어 있지 않은 것이 요인이라고 알았습니다.
그 후, 허가한 후에 다시 Alexa developer console나 iphone상의 Alexa 앱으로 시험해 보았습니다만, 앞으로는 DEVICE_NOT_SUPPORTED가 되어 버렸습니다.

궁극적으로 Amazon echo 본체에서 실행하면 제대로 작동했습니다.

꽤 어렵습니다.

좋은 웹페이지 즐겨찾기