さくらのレンタルサーバでAlexaスキルを実行する

Amazon Echo (Alexa)でのジュークボックス・スキルの開発:手持ちのmp3ファイルを音楽再生したい
のスキルサーバ、データサーバをさくらのレンタルサーバにデプロイしてみました。

解説がとても丁寧なので、素直に手順通りに進めていけば良いですが、うっかり忘れそうなことをいくつか記載します。

エンドポイント

あなたのアカウント.sakura.ne.jp を使う場合、証明書は「ワイルドカード証明書」にします。
(curl -v https://あなたのアカウント.sakura.ne.jp/ とかやると分かります)

 wrap

myjuke.php

データ・サーバの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         }

mp3.php

パスワード文字列(myjuke.phpと合わせます)

 18 // パスワード文字列は修正必須です。このままだとエラーになります。
 19 // ジュークボックス・スキルのプログラムと同じパスワードをシングルクォートで囲ってください。
 20 $sum = sha1('SECRETPASSWORD'.'cat'.$myCat.'num'.$myNum.'state'.$myState);  // ★ココ★
 21 if ($sum != $mySum) {
 22         return;

添付ファイル: fileendpoint.png 605件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-17 (水) 21:40:04