Alexaスキル「みんなの図書館」アップデートが公開されたんで、裏側を解説する

投稿者: | 2018年9月22日

2018/9/14にアップデートが公開されたのに、ブログに書きそびれてました。

https://twitter.com/jugemsan/status/1040107847785185280

せっかくなので、ちょっとだけ解説します。

Echo Spot対応になった

一番良かったのは、Echo Spot対応になったことですね(パチパチ)。これは、実機を入手できていろいろ確認できたのが一番大きかったです。しかも、同じ表示テンプレートが適用されるEcho Showにも対応できています。今日、第2世代のShowが発表されて、国内でも12月に発売になるということで、すでに対応できているのはいい感じです。

テストシミュレータより

しかし、Echo Showに「最適化」されているかといえば、まだまだ。今日発表になった「Alexa Presentation Language (APL)」を使えば、一覧表示など更にリッチな表示に対応できそうなので、発売日までには対応したいと思います。

政令指定都市の場合に動作しない不具合があった

これは、本当にひどい障害だった。要はAPI仕様の確認不足。今回のスキルは大まかには下記の流れで動作しています。

  1. 端末に設定された所在地情報(郵便番号)を取得
  2. 郵便番号APIを使い、郵便番号から都道府県名・市区町村名を取得
  3. 図書館情報APIを使い、都道府県名・市区町村名から図書館システムIDを取得
  4. Amazon PA-APIを使い、著者名やタイトルから本のISBNコードを取得
  5. 蔵書検索APIを使い、図書館システムID(3.で取得)と本のISBNコード(4.で取得)から図書館別の収蔵・貸出情報を取得
  6. 1冊ずつ読み上げ・表示

このうち、2.で取得できる市区町村名と、3.の入力として使える市区町村名が政令指定都市の場合に限り、不一致を起こします。例えば「宮城県仙台市」の場合、

  • 2.で得られる市区町村名は「仙台市○○区」
  • 3.の入力として使える市区町村名は「仙台市」

といった具合。幸い、現在の政令指定都市の市名や区名に「市」の文字が使われていないようなので、それを使って市名だけを抽出するように変更を行いました。

一部書籍のタイトル読み上げ時に例外が発生した

APIから取得できる書名に半角記号が含まれている場合に、例外が発生していました(そういう書籍がたまたま検索結果に出てきて発見した)。Webアプリでおなじみのサニタイズ処理は、応答メッセージや表示文にも適用が必要だったということ。英数字は半角のほうが綺麗に表示されるので、記号だけを対象としました。

次のアップデート予定

今のところ予定しているアップデートはちょっと規模の大きなものばかりなので、時間がかかりそう。勉強かねて、楽しみながら頑張ります。

  • バックエンドをAlexa-SDK V1→V2へ変更する
  • 検索キーワードのデータを外部に蓄積する
  • APL対応

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください