AlexaのReminder機能が一般公開されましたが、私もReminderスキルを作成してみようとしましたが、なかなかうまくいかず、注意点をまとめておきます。
権限の設定
Reminder機能を使うためには、権限の設定が2つ必要になってきます。
- 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がでてしまい困りました。ならば、iphone上のアレクサアプリではどうかかと試してみましたがやはり同様でした。
結局は、上に書いた「Alexaアプリ上でのアクセス権限付与」ができていなかったことが要因だとわかりました。
その後、許可した後に再度Alexa developer consoleやiphone上のAlexaアプリで試してみましたが、今後はDEVICE_NOT_SUPPORTEDとなってしまいました。
最終的には、Amazon echo本体で実施すると正常動作しました。
なかなか難しいですね。