この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
1 はじめに
Alexa for Businessでは、新しくプライベートスキルというスキルが作れるようになりました。
スキル管理API(SMAPI)とAlexa スキルキットコマンドラインインターフェイス(ASK CLI)を使用して、配信モードをプライベートに設定し、公開後、AWSアカウントに配布することでAlexa for Businessから利用可能になります。
と言うことで、早速作ってみました。
ちなみに、Live(公開状態)とするために、申請が必要ですが、通常の場合と違い、約1時間でLiveとなっていました。
なお、ASK CLIの使い方については、ここでは省略させて頂きます。不明の場合は、下記をご参照ください。
今回使用したASK-CLIのバージョンは、下記のとおりでした。 Version 1.0.0では、配布のコマンドが使えませんでしたのでご注意ください。
$ ask --version
1.0.0-beta.7
2 手順
プライベートスキルを作成し、利用を開始する手順は、以下のとおりです。
- 配信モードをプライベートに設定
- 申請
- 組織への配布
- 利用(Enable)
以下、各手順について紹介させて頂きます。
3 配信モードをプライベートに設定
開発段階のスキルのマニフェストで配信モードをプライベートに設定します。マニフェストは、ASK CLIでダウンロードして、編集後、アップロードします。(開発者コンソールでは作業できません)
ASK-CLIでマニュフェストをダウンロードするには、下記のコマンドを使用します。
$ ask api get-skill -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p profile-name > private-skill-sample.json
ダウンロードしたマニフェストの、publishingInformationにdistributionModeを追加します。
{
"skillManifest": {
"publishingInformation": {
"locales": {
"en-US": {
"name": "Private Skill Sample",
"smallIconUri": "https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.xxxxxxx",
"largeIconUri": "https://api.amazonalexa.com/v0/skills/amzn1.ask.skill.xxxxxxx"
}
},
"isAvailableWorldwide": true,
"distributionCountries": [],
"distributionMode": "PRIVATE"
},
"apis": {
"custom": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:xxxxxxxx:function:private-skill-sample_skill"
}
}
},
"manifestVersion": "1.0"
}
}
編集後、マニフェストを更新します。
$ ask api update-skill -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p profile-name -f private-skill-sample.json
Skill updated successfully.
4 申請
申請は、次のコマンドを使用します。(申請は、開発者コンソールからでも可能です)
$ ask api submit -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p profile-name
申請前にdevelopmentとなっているステータスは、申請後、Certificationに変わります。
申請後、Liveになるまでには、「最大2時間かかる場合がある」とドキュメントに記載されています。
なお、申請時には、通常の申請と同じく、全ての必須入力項目を埋める必要があります。いくつかが未設定の場合、次のようにエラーとなります。
$ ask api submit -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p profile-name
Call submit error.
Error code: 400
{
"message": "Invalid skill for submission",
"violations": [
{
"message": "Export compliance must not be null"
},
{
"message": "UsePersonalInfo must not be null"
},
{
"message": "IsChildDirected must not be null"
},
{
"message": "Skill summary must not be empty"
},
{
"message": "Testing Instructions must not be null"
},
{
"message": "CategoryItemtypeKeyword must not be empty"
},
{
"message": "Skill description must not be empty"
},
{
"message": "Example phrases must be between 1 and 3"
},
{
"message": "AllowPurchases must not be null"
}
]
}
申請が正常に行われると、Skill submitted successfully. が表示されます。
$ ask api submit -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p profile-name
Skill submitted successfully.
5 組織への配布
ライブステージでスキルが利用可能になったら、それを1つ以上のAlexa for Business組織に配布します。
配布は、下記のコマンド行いますが、配布先は、AWSアカウントのARNで指定します。
$ ask api add-private-distribution-account -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --stage live --account-id arn:aws:iam::xxxxxxxxxxxx:root -p profile-name
Private distribution account added successfully.
当該スキルがLiveになっていない場合、リソースが見つからないということでエラーとなります。
$ ask api add-private-distribution-account -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --stage live --account-id arn:aws:iam::xxxxxxxxxxxx:root -p profile-name
Call add-private-distribution-account error.
Error code: 404
{
"message": "Resource not found."
}
なお、スキルの配布状況は、下記の要領で確認できます。
$ ask api list-private-distribution-accounts -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --stage live -p profile-name
{
"accounts": [
{
"acceptStatus": "PENDING",
"id": "arn:aws:iam::xxxxxxxxxxxx:root"
}
]
}
また、配布を止める要領は次のとおりです。
$ ask api delete-private-distribution-account -s amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --stage live --account-id arn:aws:iam::xxxxxxxxxxxx:root -p profile-name
Private distribution account deleted successfully.
6 利用(Enable)
組織に配布されたプライベートスキルは、AWSコンソールのAlexa for Businessサービスで、Skills > Private skillsに一覧されます。
ここで、Reviewをボタンから、有効にすることで、Enables skillsに追加されます。
7 最後に
今回は、Alexa for Businessで新しく追加されたプライベートスキルを試してみました。
Liveとなるのに1時間程度は必要ですが、通常の申請のように数日かかることはありません。また、特定のAWSアカウントに対して配布ができるので、企業内で使用する専用スキルを作るには、非常に適したスキルと言えそうです。
プライベートユースだった、今までのスキルとは、まったく違う、新しい分野への展開を非常に強く感じました。