複数人で同じAlexaカスタムスキルを共有して開発する方法

複数人で同じAlexaカスタムスキルを共有して開発する方法

Clock Icon2018.01.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Alexaのカスタムスキルを開発するにあたって、複数人(チーム)でスキルの開発や共有を行いたいケースがあります。
今回は、Alexa Developer 開発者コンソール(以下、開発者コンソール)のユーザー権限機能を利用したスキル共有の方法を紹介します。

Alexa開発者アカウントの準備

Alexa開発者アカウントを作成していない場合は、以下を参考にアカウントを作成してください。
まずチームの代表(オーナー)となるアカウントを準備します。

失敗しないAlexa開発者アカウントの作り方

続いて、スキルを共有したいチームメンバーの開発者アカウントも、同様に準備しておいてください。

オーナーアカウントにユーザー権限を追加する

開発者コンソールでは、アカウントに対してユーザー権限を追加する機能があります。
特定のAlexa開発者アカウントに対し、別のユーザーアカウントに開発権限を付与することで、そのアカウントのスキルに別のユーザーもアクセスすることが可能となります。

今回は、オーナーアカウントのユーザー権限にメンバーアカウントを追加することで、スキルの共有を実現します。

まず、オーナーアカウントで開発者コンソールにアクセスします。
(以下の画像では、開発者名を**DEVとしています)

「設定」タブの「ユーザー権限」メニューをクリックします。
オーナーアカウントの権限情報が表示されます。

「新規追加」をクリックすると、ユーザーを追加するフォームが表示されます。

スキルを共有するメンバーアカウントの

  • Eメールアドレス (Amazon Developerにアカウント登録済みのもの)
  • 役割 (開発者または管理者)

を入力し、「保存」をクリックします。
追加したメンバーに対して、ログイン依頼のメールが送信されます。
(メンバー分、この作業を繰り返します)

オーナー側の作業は、以上で完了です。

メンバーによるオーナーアカウントへのログイン

続いて、追加されたメンバーは届いているメールを確認し、リンクをクリックしてログインします。

ログインすると、右上の開発者名がオーナーアカウントの開発者名(**DEV)になっています。

これで、メンバーはオーナーアカウントのスキルを確認・開発することができます。
以降、開発者名をクリックするとユーザー権限のある開発者が一覧で表示されるので、必要に応じてロールをスイッチします。

以上で、Alexaの開発スキルをチームで共有することができました。

開発したスキルのテストができない(Alexaアプリに出てこない)場合

スキルを共有する場合にハマりやすいのが、開発したスキルのテストができない(Alexaアプリに出てこない)、という現象です。

開発中のスキルは、テストを有効にすることでサービスシミュレーターやEchoデバイスでテストを行うことができます。
しかし、「テストを有効にしたけど、Echoデバイスでスキルを実行できないしAlexaアプリ上にも出てこない。なんで?」となるケースがあります。

これは、スキルのテスト設定がスキルそのものではなく、アカウントごとに設定されることによります。
アカウントごとに設定されるということは、テストを有効にしたアカウントに紐付いているEchoデバイスで使えるようになる、ということです。

つまり、ある開発中のスキル(「お天気スキル」とします)を複数人で共有している場合、

  • オーナーアカウントが、お天気スキルのテストを有効にする → オーナーアカウントに登録されているEchoデバイスでテストが可能
  • メンバーAのアカウントが、お天気スキルのテストを有効にする → メンバーAのEchoデバイスでテストが可能
  • メンバーBのアカウントが、お天気スキルのテストを有効にする → メンバーBのEchoデバイスでテストが可能

となります。
また、テストの有効/無効もアカウントごとに設定する必要があります。

おわりに

Alexaスキルの開発をチームで行うための、開発者コンソールによるユーザー権限を利用したスキル共有の方法をまとめました。
権限の追加自体はすぐに出来ますが、スキルのテストが出来ない現象は気が付かないとハマりやすいので、注意が必要です。

それでは。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.