Amazon Echo (Alexa)でのジュークボックス・スキルの開発:手持ちのmp3ファイルを音楽再生したい
のスキルサーバ、データサーバをさくらのレンタルサーバにデプロイしてみました。
解説がとても丁寧なので、素直に手順通りに進めていけば良いですが、うっかり忘れそうなことをいくつか記載します。
あなたのアカウント.sakura.ne.jp を使う場合、証明書は「ワイルドカード証明書」にします。
(curl -v https://あなたのアカウント.sakura.ne.jp/ とかやると分かります)
データ・サーバのURL
1 <?php
2 error_reporting(0);
3
4 define('MP3URL', 'https://あなたのアカウント.sakura.ne.jp/配置したディレクトリ/mp3.php?'); // ★ココ★
5 define('NORMAL', 'N');
6 define('SHUFFLE', 'S');
スキルID
「Alexa Developer Console」のスキル一覧にある「スキルIDの表示」で調べて書き写します
11 // 必須チェック(証明書以外)
12 if ($envelope['context']['System']['application']['applicationId']
13 // スキルIDは修正必須です。このままだとエラーになります。
14 // スキルIDをシングルクォートで囲ってください。
15 // 例:'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
16 != 'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') { // ★ココ★
パスワード文字列(例として SECRETPASSEWORD にしてみます)
117 public function url() {
118 $uts = time();
119 $param = 'cat='.$this->cat.'&num='.strval($this->num).'&state='.strval($uts);
120 // パスワード文字列は修正必須です。このままだとエラーになります。
121 // データ・サーバのプログラムと同じパスワードをシングルクォートで囲ってください。
122 $sum = sha1('SECRETPASSWORD'.'cat'.$this->cat.'num'.strval($this->num).'state'.strval($uts)); // ★ココ★
123 $envelope = MP3URL.$param.'&sum='.$sum;
124 return $envelope;
125 }
パスワード文字列(myjuke.phpと合わせます)
18 // パスワード文字列は修正必須です。このままだとエラーになります。
19 // ジュークボックス・スキルのプログラムと同じパスワードをシングルクォートで囲ってください。
20 $sum = sha1('SECRETPASSWORD'.'cat'.$myCat.'num'.$myNum.'state'.$myState); // ★ココ★
21 if ($sum != $mySum) {
22 return;