はじめに
Raspberry Pi B3上でAVS(Alexa Voice Service)を動かそうとしたときに、認証エラーが発生。
チュートリアルやavs-device-sdkのissueをみるもはっきりわからず。
この記事では私がハマった部分について詳細を記載します。
前提条件
Raspberry Pi B3
OS: NOOBS 2.8.2 Release Date 2018-6-28
https://www.raspberrypi.org/downloads/noobs/
avs-device-sdk
https://github.com/alexa/avs-device-sdk/
リファレンス
Raspberry Pi Quick Start Guide with Script
https://github.com/alexa/avs-device-sdk/wiki/Raspberry-Pi-Quick-Start-Guide-with-Script
その他のプラットフォームおよびデバイス向けのコードベースのリンク
https://developer.amazon.com/ja/docs/alexa-voice-service/code-based-linking-other-platforms.html
Input AVS Credentials
https://developer.amazon.com/ja/docs/alexa-voice-service/input-avs-credentials.html
ハマったところ
Alexa起動時の認証プロセス時に認証されない。
UNRECOVERABLE AUTHORIZATION ERROR: INVALID_CBL_CLIENT_IDの発生
Entering limited interaction mode:
CLIENT IDについて
Build前に、config.txtにCLIENT IDとPRODUCT IDを記載します。しかしこのCLIENT IDが非常にわかりづらい落とし穴になります。
開発者コンソール上に登録したには以下のように表示されています。
ここに「クライアントID」と記載されており、これをクライアントIDに記載してしまいます。
SDK 1.6もしくはそれより前のバージョンにはこのクライアントIDを記載する必要がありました。
しかしSDK1.7からはこちらのクライアントIDを記載すると上記のように認証エラーが発生しています。
対処方法
Raspberry Piにてavsを使用する場合には、使用するクライアントIDを新たに生成する必要があるようです。
上記の「マイ商品」の中にある「セキュリティプロファイル」をクリックします。
この中の「他のデバイスやプラットフォーム」をクリックします。
クライアントID名を記載し、一般IDをクリックするとavsdp_device_settings_client_id_titleが生成されます。このavsdp_device_settings_client_id_titleこそが、Raspberry Piにてsetup.txtに記載するCLIENT IDの部分に記載するIDとなります。
終わりに
1.7のリリース直前のSDK1.6からavsに取り組みはじめ、1.7になり、認証ができなくなり、ハマってしまいました。
Security Profile Managementのタブの中に「Web Setting|Android/Kindle Settings|iOS Settings」とあり、肝心な「Other Device/Platform」が表示されずにハマってしまいました。
「他のデバイスやプラットフォーム」を探すのにちょっと時間がかかってしまいました。
Webでのチュートリアルにもこの点を詳細な情報がなかったのですが、いつの間にか公式なチュートリアルも記載されておりました。
英語版ですが、非常にわかりやすく、詳細についてはこちらの記事を参照されるのが良いかと思います。