AlexaスキルのレポートデータをSMAPIから取れるようになりました。
地味に嬉しいアップデートとして、Alexaスキルのレポートデータを取得するAPIが公開されました。 準備 Login With Amazonでtokenを取得しておきましょう。 ASK CLIで取る方法(過去の記事から) […]
目次
地味に嬉しいアップデートとして、Alexaスキルのレポートデータを取得するAPIが公開されました。
準備
Login With Amazonでtokenを取得しておきましょう。
ASK CLIの設定を拾って来るという方法もあります。
$ curl https://api.amazonalexa.com/v1/skills/{YOUR_SKILL_ID}/stages/live/accountLinkingClient \
> -H "Authorization: $(cat ~/.ask/cli_config | jq .profiles.default.token.access_token -r)"
APIをたたいてみる
APIは「GET v1/skills/{YOUR_SKILL_ID}/metrics」です。早速呼びだしてみましょう。
$ curl https://api.amazonalexa.com/v1/skills/{YOUR_SKILL_ID}/metrics \
-H "Authorization: YOUR_ACCESS_TOKEN"
{
"message": "6 validation errors detected: Value null at 'period' failed to satisfy constraint: Member must not be null; Value null at 'stage' failed to satisfy constraint: Member must not be null; Value null at 'skillType' failed to satisfy constraint: Member must not be null; Value null at 'metric' failed to satisfy constraint: Member must not be null; Value null at 'startTime' failed to satisfy constraint: Member must not be null; Value null at 'endTime' failed to satisfy constraint: Member must not be null"
}
period
/ stage
/ skillType
/ metric
/ startTime
/ endTime
の6種類の引数が必須とのことです。
$ curl "https://api.amazonalexa.com/v1/skills/{YOUR_SKILL_ID}/metrics?startTime=2019-10-07T10:45:00Z&endTime=2019-10-14T10:45:00Z&period=P1D&stage=live&skillType=custom&metric=totalSessions" \
-H "Authorization: YOUR_ACCESS_TOKEN"
{
"metric": "totalSessions",
"timestamps": [
"2019-10-07T00:00:00Z",
"2019-10-08T00:00:00Z",
"2019-10-09T00:00:00Z",
"2019-10-10T00:00:00Z",
"2019-10-11T00:00:00Z",
"2019-10-12T00:00:00Z",
"2019-10-13T00:00:00Z",
"2019-10-14T00:00:00Z"
],
"values": [
1,
0,
0,
1,
1,
0,
2,
1
]
}
とれました。
必須の引数をざっとみる
period
/ stage
/ skillType
/ metric
/ startTime
/ endTime
の必須パラメータについてみてみましょう。
period: レポートの集計期間を設定する
許可されている値:SINGLE、PT15M、PT1H、P1D
- SINGLE: 総合計
- PT15M: 15分おき
- PT1H: 1時間おき
- P1D: 1日おき
stage: スキルのステージ
DEVELOPMENT
またはLIVE
の二択です。が、ここは基本的にはLIVE
固定になるでしょう。
skillType: スキルの種類
custom、smartHome、flashBriefingの3種類があります。
作成しているスキルの種類を入れるようにしましょう。
metric
取得したいメトリクスを指定します。
スキルの種類によって異なりますので、ドキュメントをみながら選びましょう。
startTime / EndTime
対象の期間を指定します。一週間以内である必要がありますので注意しましょう。
ちなみに期間を超えている場合は、このようなエラーが表示されます。
{
"message": "Inner error: Requested time range exceeds maximum time duration 1 week."
}
なにが嬉しいのか
SMAPIを自分で使うことはあまりないとは思います。が、おそらく(というか間違いなく)Alexaスキルを作るサービスはこのAPIを利用しています。
ということは、Voiceflowなどのサービスで、公開したスキルのメトリクスを見れるようになるという可能性が今後出てきそうです。
また、複数のスキルや複数のアカウントを使っている場合などにカスタムしたダッシュボードを自前で作れるというのも良い点です。