wheatandcatの開発ブログ

React Nativeで開発しているペペロミア & memoirの技術系記事を投稿してます

Alexaスキルの開発始めました2

Alexaスキル作り始めたら、思ったより審査を通すのが大変だった。。。公開まではもう少し時間がかかりそうです。

今回はアプリへデータを送る関係で以下の機能を開発していく感じになりました。

Alexaスキル開発

Alexaスキルと外部アプリを連携させるためにはアカウントリンク使用する必要があります。

developer.amazon.com

...他にもCustomer Profile APIでメールアドレスや連絡先を取得可能みたいです。

dev.classmethod.jp

まぁ、Customer Profile APIの話は置いといてアカウントリンクを使用するためにはLogin With Amazonを実装する必要があります。

ってことで、諸々実装。 実装に必要な物は↓に載っています。

dev.classmethod.jp

web画面

まずはweb画面でLogin With Amazonを実装

アプリ

Amazonログインとアカウントの連携→Alexa Skillへのリンクまで実装

backend

以下の2つのAPIを作成 - Amazonアカウントとの連携情報を登録するAPI - Alexa経由でスケジュール登録するAPI

スクリーンショット 2019-11-30 20 46 21

これでアプリ側でAmazonログインした際にAmazonアカウントIDを紐付けて保存。 Alexaスキルから「Alexa経由でスケジュール登録するAPI」を実行することで対象のAmazonアカウントIDと紐付けてデータが保存できる。

Alexaスキル

以下のように動作するようになっている

$ ask dialog -l ja-JP

  User  >  ペペロミアを開いて
  Alexa >  作成したい予定を教えて下さい
  User  >  上野駅 の予定を 明後日 に作成
  Alexa >  2019-11-14に渋谷。予定の中身を教えてください。
  User  >  上野駅 と 上野公園 と 上野美術館 を追加
  Alexa >  上野駅に上野公園と上野美術館を追加しました。

最後の回答時にAmazon accessTokenをAuthorizationにつけて「Alexa経由でスケジュール登録するAPI」を叩くことで実際にアプリ側とのデータ連携させる

こんなところまでは現状実装済みです。

ただ、ここまで実装したのは良いものの、アカウントリンクを含ませると結構Alexaスキルの公開の審査が厳しいことが分かったので、一旦休憩で別の開発を進めようと思います