【Alexaスキル開発】リマインダーAPIが一般公開されたので試してみた

はじめに

開発部の辻です。
通勤中にRSSを見ていたら、リマインダーAPIが一般利用できるという情報を目撃し早速試してみました。
Alexa Blogs – Remind Customers of Important Tasks or Events with the Reminders API

今まではスキルからリマインダーを設定することができませんでしたが、今回のアップデートでAPIが用意され簡単に使えるようになりました。
今回は試しにラーメンタイマーを作成してみました。

目次

Lambdaプログラム部分

ask-utilsが早速リマインダーAPIに対応していたのでそちらを利用します。

npm i -S ask-sdk ask-utils@latest

リマインダーを設定する部分はこんな感じになります。

const {canHandle, RemidnerClient} = require('ask-utils');
...

// Slot値(数値)取得
const time = request.intent.slots.time.value;

const client = new RemidnerClient(handlerInput);

const payload = {
        requestTime:request.timestamp,
        trigger: {
            type: "SCHEDULED_RELATIVE",
            offsetInSeconds: `${time*60}`,
        },
        alertInfo: {
            spokenInfo: {
                content: [{
                    locale: "ja-JP",
                    text: "ラーメンの完成です!"
                }]
            }
        },
        pushNotification: {
            status: "ENABLED"
        }
    };

client.setPayload(payload);
await client.fetch('POST');

ask-utilsのおかげで非常に簡単にできますね
Payloadの値はこちらで確認することができます。
Alexa Reminders API Reference

Skill設定

Skillのビルド設定よりリマインダーAPIへのアクセス権限を付与する必要があります。

テスト

実機でテストしました。
テストする前にスキルにリマインダーへのアクセスを許可する必要があります。
(私は忘れていてなぜか動かないと悩みました)

スキル名のあとにリマインドした内容を読み上げてくれるのでわかりやすいです。

まとめ

今まではなにかアクションを起こすためには、ユーザの発話が必要でしたがリマインダーAPIの登場でAlexa側からメッセージを送ることができるようになり
今後のスキル開発の幅が広がりそうですね

Alexaのアップデートは頻繁に来るので今後も注目していきたいと思います

※余談
社内に人が少ない時間にAlexaに話しかけていたら、通りかかった人に「えっ私が呼ばれたのかと思った」と言われました。

投稿者プロフィール

Tsuji
Tsuji
開発部所属

学生時代にJavaを勉強し、最近はPython/TypeScriptでコードを書くことが多いです。
基本サーバレスなシステムを開発しています。

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

開発部所属 学生時代にJavaを勉強し、最近はPython/TypeScriptでコードを書くことが多いです。 基本サーバレスなシステムを開発しています。