本記事はalexa-avs-sample-appを動かすメモです。
2018年4月現在は、MSYS2上にインストールする方法がありますので
そちらを参照するといいかもしれません。
【元記事】
【修正するファイル】・samples/companionService/config.js
・samples/javaclient/config.json
・samples/javaclient/pom.xml
・samples/javaclient/ssl.cnf
・samples/javaclient/config.json
・samples/javaclient/pom.xml
・samples/javaclient/ssl.cnf
ではスタートです。
Step1.Amazon developerにログインしてAVSデバイスを追加
ProductID、ClientID、ClientSecretキーを取得する。
Step2.サンプルプログラムをダウンロードする。
例:c:\project\alexsaフォルダに展開する場合、
DOSプロンプト上でクローンするフォルダに移動してから
> c:
> cd \project
> mkdir alexsa
> cd alexsa
> git clone https://github.com/alexa/alexa-avs-sample-app.git
例:c:\project\alexsaフォルダに展開する場合、
DOSプロンプト上でクローンするフォルダに移動してから
> c:
> cd \project
> mkdir alexsa
> cd alexsa
> git clone https://github.com/alexa/alexa-avs-sample-app.git
Step3.依存アプリのインストール
・VLCをインストール http://www.videolan.org/
環境変数に登録する
例:
環境変数名:VLC_PATH
パス:C:\Program Files(x86)\VideoLAN\VLC
・VLCをインストール http://www.videolan.org/
環境変数に登録する
例:
環境変数名:VLC_PATH
パス:C:\Program Files(x86)\VideoLAN\VLC
・Java JDKをインストール(Ver8以降)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
・Movenをインストール
https://maven.apache.org/download.cgi
※環境パスを登録する事
例:JAVA_HOME=C:\Program Files\Java\jdk1.8.0_162
https://maven.apache.org/download.cgi
※環境パスを登録する事
例:JAVA_HOME=C:\Program Files\Java\jdk1.8.0_162
Step4.SSL証明書を生成する
・OpenSSLをインストール
http://slproweb.com/products/Win32OpenSSL.html
・OpenSSLをインストール
http://slproweb.com/products/Win32OpenSSL.html
環境変数「Path」に「Bin」フォルダを登録する。
例「C:\tool\OpenSSL-Win64\bin」
例「C:\tool\OpenSSL-Win64\bin」
・[C:\project\alexa\alexa-avs-sample-app\samples\javaclient]を編集する
YOUR_****の部分を全て変更する
countryName = JP
stateOrProvinceName = Tokyo
localityName = Nakano-Ku
organizationName = NA
organizationalUnitName = NA
countryName = JP
stateOrProvinceName = Tokyo
localityName = Nakano-Ku
organizationName = NA
organizationalUnitName = NA
・DOSプロンプト上でGenerate.batを起動する。
ここで適当な
プロダクトID、シリアルナンバー、パスワードを入力する。
例:
ProductID:Dispatcher
SerialNumber:123456
Password:1234
プロダクトID、シリアルナンバー、パスワードを入力する。
例:
ProductID:Dispatcher
SerialNumber:123456
Password:1234
ちゃんとうまく証明書が生成できれば
「1 個のファイルをコピーしました」
「1 個のファイルをコピーしました」
というのが表示される。
・設定ファイルに生成した証明書の参照パスを設定する。
「c:\project\alexa\alexa-avs-sample-app\samples\companionService\config.js」を開き、
sslKey: 'C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\server\\node.key',
sslCert: 'C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\server\\node.crt',
sslCaCert: 'C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\ca\\ca.crt',
"products":"Dispatcher" : ["Dispatcher"],
sslCert: 'C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\server\\node.crt',
sslCaCert: 'C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\ca\\ca.crt',
"products":"Dispatcher" : ["Dispatcher"],
を入力する。
「C:\project\alexa\alexa-avs-sample-app\samples\javaclient\config.json」を開き、
"productId":"Dispatcher",
"dsn":"123456",
"provisioningMethod":"companionService",
"clientId":"*********",
"clientSecret":"*********",
"locale":"ja-JP"
"productId":"Dispatcher",
"dsn":"123456",
"provisioningMethod":"companionService",
"clientId":"*********",
"clientSecret":"*********",
"locale":"ja-JP"
"sslKeyStore":"C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\server\\jetty.pkcs12",
"sslClientKeyStore":"C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\client\\client.pkcs12",
"sslClientKeyStorePassphrase":"1234",
"sslCaCert":"C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\ca\\ca.crt"
"sslClientKeyStore":"C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\\client\\client.pkcs12",
"sslClientKeyStorePassphrase":"1234",
"sslCaCert":"C:\\project\\alexa\\alexa-avs-sample-app\\samples\\javaclient\\certs\ca\\ca.crt"
「clientID」「clientSecret」は最初のAVS登録時の情報で
「sslClientKeyStorePassphrase」は証明書作成時に入力したパスワードになります。
「sslClientKeyStorePassphrase」は証明書作成時に入力したパスワードになります。
「products」はKey:Value型になっていて
KeyはAVS登録時のProductIDで、
ValueはSSL証明書作成時に入力したProductIDになります。
「C:\project\alexa\alexa-avs-sample-app\samples\javaclient\」を開き
17行目付近にある部分を下記のように編集
17行目付近にある部分を下記のように編集
・AndroidスマホにAmazonAlexaアプリをインストールする
https://play.google.com/store/apps/details?id=com.amazon.dee.app&hl=ja&rdid=com.amazon.dee.app
https://play.google.com/store/apps/details?id=com.amazon.dee.app&hl=ja&rdid=com.amazon.dee.app
Step5.ビルドと実行、そしてNode.jsサーバによる認証
Dosプロンプト上で
> c:
> cd project\alexa\alexa-avs-sample-app\samples\companionService
> npm install
> npm start
> c:
> cd project\alexa\alexa-avs-sample-app\samples\companionService
> npm install
> npm start
別のDosプロンプト上で
> c:
> cd project\alexa\alexa-avs-sample-app\samples\examples\javaclient
> mvn validate
> mvn install
> mvn exec:exec
> c:
> cd project\alexa\alexa-avs-sample-app\samples\examples\javaclient
> mvn validate
> mvn install
> mvn exec:exec
を実行する。
これでJAVAアプリが起動する。
クラウドとやり取りするのは1つめのコンパニオン
GUIは2つ目のjavaアプリ
GUIは2つ目のjavaアプリ
という2構成になっています。
ブラウザで「https://developer.amazon.com/lwa/sp/overview.html」を開き
最初に作成したAVSデバイスを選択して
Consent Privacy Notice URLは暫定のURLでも張り付けておく。
最初に作成したAVSデバイスを選択して
Consent Privacy Notice URLは暫定のURLでも張り付けておく。
cd project\alexa\alexa-avs-sample-app\samples\companionService
【インストール時に引っかかった事】
設定ファイルで未記入の所でエラー。(エラーが出なくなるまで項目を埋めていった)
Jsonファイルの構文にひっかかった。(\\が2つになっていない箇所があった)
JAVAコンパイラが見つからなかった(パスの問題)
VLCのバージョンが32bitでDLL読込み失敗した(64bitのものにインストールし直した)
設定ファイルで未記入の所でエラー。(エラーが出なくなるまで項目を埋めていった)
Jsonファイルの構文にひっかかった。(\\が2つになっていない箇所があった)
JAVAコンパイラが見つからなかった(パスの問題)
VLCのバージョンが32bitでDLL読込み失敗した(64bitのものにインストールし直した)
Localhostを127.0.0.1に直さないと動かない。
【まとめ】
以上の手順をこなせば、Alexaが動作する所まで確認できます。
構成は、
GUIがフロントエンド(JAVA)で
バックエンド(Javascript)にコンパニオンがいます。
動作の流れは、
GUIからログインを行うと、コンパニオンを仲介してAWSにアクセスして認証を通します。
Amazonアカウントのログイン完了後、
OKであればシークレットキーが届いて、これでアレクサと接続状態になります。
ダメな場合は400とかエラーコードが返ってきます。
接続状態の時にアレクサに話しかけてAlexsaスキルを発動すると、
対応する接続中のデバイスに対してNotificationが届きます。
これでESP32でLチカとかもできちゃいますね!
0 件のコメント:
コメントを投稿