Alexaスキルへのパーソナライズ機能の追加
スキルがパーソナライズをサポートしている場合は、識別済みのスキルユーザーにパーソナライズされたエクスペリエンスを提供できます。さらに、Alexaから識別済みのユーザーにパーソナライズされたあいさつやプロンプトを返すこともできます。詳細については、ユーザー向けにパーソナライズされたあいさつやプロンプトの提供を参照してください。
このドキュメントでは特に、識別済みユーザーに対するスキルエクスペリエンスのパーソナライズについて説明します。アクティブなAlexaデバイスが登録されているAmazonアカウントからユーザーの位置情報やユーザー情報を取得するなど、ユーザーの識別に依存しない別の方法でスキルのエクスペリエンスをパーソナライズすることもできます。
識別済みユーザーに対するパーソナライズのデモを行うサンプルスキルについては、Skill Personalization Demoを参照してください。
- スキルのパーソナライズ機能について
- 制約と実装に関する考慮事項
- パーソナライズをサポートするようスキルを設定する
- スキルのパーソナライズでの認証の信頼レベル
- 呼び出しリクエストの例
- スキルに実装したパーソナライズ機能をテストする
- PersistentUnitIdまたはPersistentEndpointIdに関する権限をリクエストするようスキルを設定する
スキルのパーソナライズ機能について
1台のAlexaデバイスが複数のユーザーと対話する場合もあれば、同じAmazonアカウントに複数のデバイスが登録されている場合もあります。Alexaと対話するユーザーは、ニーズや好み、サードパーティアプリのアカウントがそれぞれ異なります。デフォルトでは、スキルは個々のユーザーを区別しないため、パーソナライズされた応答を返すことができるのはアカウントレベルのみです。ユーザーは、「アレクサ、アカウントを切り替えて」と声をかければ自分のアカウントにアクセスできますが、すべてのユーザーがそうするとは限りません。また、自分専用のAmazonアカウントを持っていない可能性もあります。
識別済みユーザーに対してスキルをパーソナライズしない場合、サードパーティアプリへのアカウントリンクが設定されているスキルは、どのユーザーと対話するかに関係なく、1つのアカウントにのみリンクされます。スキルのパーソナライズ機能を使用すると、共有アカウントを使用せず、それぞれのスキルユーザーが各自のアカウントにリンクできます。
スキルがパーソナライズをサポートしている場合は、音声IDが作成済みでスキルをパーソナライズをオンにしている個々のユーザーを区別できます。Alexaユーザーがパーソナライズを有効または無効にする方法の詳細については、スキルのパーソナライズをスキルユーザーとして管理するを参照してください。
ユーザーごとにコンテンツをパーソナライズし、スキルの利便性をさらに高める方法を検討してください。
たとえば、識別済みユーザーに対するパーソナライズは、次のような場合に役立ちます。
-
乗換案内スキル:ユーザーによって通勤先や通学先が異なる場合、識別済みの各ユーザーの通勤(通学)経路を学習し、そのユーザーに適したコンテンツを提供できます。たとえば、太郎は渋谷駅行きのバスで通勤し、花子は品川駅行きのバスで通勤しているとします。花子が「何時に家を出ればよいか」をスキルにたずねると、品川駅行きのバスに合わせた出発時刻が返されます。
-
エクササイズスキル:識別済みのユーザーごとに、異なるトレーニングメニューを提供できます。たとえば、このスキルに春子がたずねたときは、春子用のトレーニングメニューを返し、太郎がたずねたときは、太郎用のトレーニングメニューを返します。
-
配車スキル:Alexaによって識別されたユーザーが自分のアカウントをサードパーティアプリにリンクしている場合、配車スキルで(Amazonアカウント所有者ではなく)そのユーザーのアカウントを使用して配車を依頼できます。
ユーザーごとにコンテンツをパーソナライズし、スキルの利便性をさらに高める方法を検討してください。
制約と実装に関する考慮事項
スキルにパーソナライズ機能を実装する際は、次の点を考慮してください。
- 識別済みユーザーに対するパーソナライズをスキルで使用する場合は、プライバシーポリシーを提示する必要があります。開発者コンソールでスキルを開き、公開をクリックします。公開ページのプライバシーポリシーのURLボックスに、適用するプライバシーポリシーへのリンクを入力してください。詳細については、スキルのメタデータを定義するを参照してください。
- スキルのパーソナライズ機能はカスタムスキルでのみ使用できます。
- スキルがHIPAA対応スキルの場合は、Requirements for Skills that are HIPAA-Eligible(英語)で定義されているパーソナライズ機能のみを使用する必要があります。
以下のユースケースでは、識別済みユーザーに対するスキルのパーソナライズは使用できません。
- 子ども向けのスキルでは、パーソナライズ機能を使用できません。
- 機密性の高いユーザー情報を扱う場合は、パーソナライズ機能を使用できません。
- パーソナライズ機能は認証に代わるものではありません。 この機能を使用して、ユーザー個人を特定することはできません。
スキル開発者およびスキルユーザー向けの開発と使用に関する考慮事項
識別済みユーザーに対してスキルをパーソナライズするには、Alexaユーザーとスキル開発者の両方が所定の設定を行う必要があります。
開発者は、識別したユーザーとの対話をパーソナライズするようスキルを設定できます。また、デバイスのAmazonアカウント所有者と発話者が異なる場合でも、発話したユーザーの個々のサードパーティアカウントをリンクするように設定することもできます。
たとえば、配車スキルの場合、自分の音声IDを作成しているユーザーは、サードパーティアプリの各自のアカウントにリンクできます。たとえば、太郎と花子がAlexa搭載デバイスを共有していて、それぞれ異なる配車アプリアカウントにリンクしているとします。配車スキルがパーソナライズをサポートしていれば、Alexaが適切なユーザーアカウントにリンクし、それを基にパーソナライズされた応答を返すことができます。また、その他のユーザー固有の情報を使用してAlexaから応答を返すこともできます。アカウントリンクの詳細については、Alexaスキルにアカウントリンクを追加するを参照してください。
音質などが原因で、音声IDが作成されているユーザーをAlexaが識別できない場合、そのユーザーは、デバイスが登録されているAmazonアカウントの一般ユーザーとみなされます。
識別済みユーザーに対するスキルのパーソナライズは、すべてのユーザーが許可しているわけではありません。スキルには、こうした状況に対応するためのワークフローを用意する必要があります。
データのプライバシーとユーザー情報の使用について
Alexaではスキルからアクセスできない(ユーザーや発話者の)個人情報を利用できる可能性がありますが、Alexaがこの個人情報をサードパーティの開発者に提供することはありません。
Amazonアカウント所有者がAlexaアプリで同意すると、スキルはユーザープロフィールAPIを介して、そのユーザーの個人情報を取得できるようになります。ただし、ユーザープロフィールAPIが取得するのは、現在の話者の情報ではなく、Amazonアカウント所有者の情報です。
これに対し、スキルで識別済みユーザーの情報を取得する場合は、Person Profile APIを使用します。識別済みユーザーは、音声IDが作成済みで、Alexaアプリでスキルをパーソナライズを有効にしている必要があります。
開発者は、個人情報の取得と使用に関する法的要件を遵守する責任があります。取得した個人情報は、そのユーザーの許可を得た場合に限り、プライバシーに関する通達および関連法令に則って利用できます。
スキルでパーソナライズをサポートするためのチェックリスト
識別済みユーザーにパーソナライズされたエクスペリエンスを提供するには、スキルが次の条件をすべて満たしている必要があります。
- スキル開発者は、ユーザーにパーソナライズの権限をリクエストして、同意を得られるようにする必要があります。これは開発者コンソールで行うことができます。また、スキルマニフェストのパーソナライズの権限スコープを更新して、SMAPIやASK CLIで使用できるようにすることもできます。パーソナライズのスコープは
alexa::person_id:read
です。 - ユーザーの音声IDは、Alexaアプリの設定でスキルをパーソナライズがオンになっている必要があります。
- Alexaがユーザーの声を識別し、そのユーザーに対応する
context.System.person
オブジェクトをスキルリクエストに追加します。 - スキルリクエストの
context.System.person.personId
値に基づいて応答をパーソナライズするためのワークフローをスキルに用意します。
スキルのパーソナライズのユーザー要件
パーソナライズされた応答を返すには、このドキュメントで後述するように、パーソナライズをサポートするようスキルを設定する必要があります。
パーソナライズをサポートしているスキルをユーザーが呼び出すと、以下のような処理が行われます。Amazonアカウント所有者が音声プロフィールでスキルをパーソナライズを有効または無効にする方法の詳細については、スキルのパーソナライズをスキルユーザーとして管理するを参照してください。
- 識別されたユーザーの音声IDが作成済みでスキルをパーソナライズが有効になっている場合、スキルはそのユーザーにパーソナライズされたコンテンツを提供できます。そのユーザーからの後続のスキルリクエストにはそれぞれ、識別時に
personId
を含むcontext.System.person
オブジェクトが追加されます。 - ユーザーが識別されない場合や、Alexaアプリで音声IDのスキルをパーソナライズが有効になっていない場合、スキルはユーザーにパーソナライズされた応答を提供しないワークフローを実行します。
ユーザーは、Alexaアプリで自分の音声IDのスキルをパーソナライズを無効にすることで、いつでもスキルのパーソナライズ権限を取り消すことができます。権限を取り消したユーザーのスキルリクエストにはperson
オブジェクトが追加されなくなるため、スキルからそのユーザーにパーソナライズされた応答を返すことはできなくなります。
ユーザーがパーソナライズの権限を付与しない場合や、権限を取り消した場合のワークフローを用意してください。スキルがパーソナライズ機能の使用を前提としており、それ以外ではサービスを提供できない場合は、セッションを適切に終了できるようにしておく必要があります。
パーソナライズをサポートするようスキルを設定する
パーソナライズをサポートするようスキルを設定するには、次の手順を実行します。
-
パーソナライズの権限をリクエストするようにスキルを設定します。
カスタムスキルを作成または編集する際に、開発者コンソールでスキルのパーソナライズの権限を有効にできます。
- 開発者コンソールで、目的のスキルを開きます(スキルを作成していない場合は作成します)。
- ビルドタブをクリックし、左下のアクセス権限をクリックします。
- アクセス権限セクションで、スキルのパーソナライズを有効にします。
SMAPIまたはASK CLIを使用してスキルを作成している場合は、スキルマニフェストの権限を直接編集して、パーソナライズのスコープ(
alexa::person_id:read
)を追加することもできます。 -
識別済みユーザーに対してスキルをパーソナライズがオンになっている場合は、パーソナライズを使用して応答を返すようにスキルサービスを設定します。
-
ユーザーが識別されない場合や、ユーザーがパーソナライズの権限を付与しない場合を想定し、これらの状況を適切に処理できるようにします。
スキルリクエストに含まれるuser
とperson
の違い
Alexaに渡される各スキルリクエストにはcontext.System.user
オブジェクトが含まれています。このオブジェクトにはuserId
値が含まれます。userId
値は、ユーザーがリクエストに使用したAlexaデバイスに紐づいたAmazonアカウントを表します。ユーザーがAlexaデバイスでスキルを有効にすると、このuserId
が自動的に生成されます。同じアカウントに登録されているスキルをユーザーが無効にして、再度有効にした場合は、このuserId
値と、存在する場合はpersonId
値が変更されます。
userId
値は変更されません。Alexaに話しかける人は、デバイスが登録されているアカウント所有者であるとは限りません。userId
値は、発話者ではなく、そのスキルを有効化するときに使用したAmazonアカウントを表します。そのため、userId
値を基にした場合、スキルは現在の発話者に対してパーソナライズされたコンテンツを提供できない可能性があります。
パーソナライズ機能を使用すると、アカウント内の個々のユーザーをスキルが識別できるようになります。スキル開発者と識別済みユーザーの両方がスキルのパーソナライズ要件をすべて満たしている場合、context.System.user
オブジェクトに加え、context.System.person
オブジェクトも各スキルリクエストに追加されます。スキルはperson
オブジェクトのpersonId
値を使用して、その識別済みユーザー向けにパーソナライズされた応答を提供できます。person
オブジェクト内のauthenticationConfidenceLevel
オブジェクトは、ユーザーの識別に対するAlexaの信頼度を表します。
つまり、user
オブジェクトは特定のAmazonアカウントを表し、person
オブジェクト(存在する場合)は、そのアカウントからAlexaに話しかけている識別済みユーザーを表します。Alexaでは、ユーザーの同意なしに、Amazonアカウント所有者または現在の発話者に関する個人を特定する情報を送信することはありません。スキルはそれぞれのpersonId
値を区別し、同じpersonId
値を含むスキルリクエストを互いにリンクできますが、personId
値で表されるユーザーに関する個人を特定できる情報は提供しません。
何らかの理由でAlexaがユーザーを識別しない場合、そのユーザーのスキルリクエストにcontext.System.person
オブジェクトは追加されません。
パーソナライズでは、person
オブジェクトに含まれる一意のpersonId
値をスキルが識別できることが前提となります。personId
値はユーザーごとに固有であるため、スキルはこの値を使用して個々の識別済みユーザーを区別できます。
スキルのパーソナライズでの認証の信頼レベル
認証の信頼レベルは、Alexaがユーザーの識別をどの程度信頼しているかを示します。Alexaがユーザーを識別した場合、認証の信頼レベルがcontext.System.person
オブジェクト内のauthenticationConfidenceLevel
オブジェクトに格納されます。認証の信頼レベルが400未満の場合は、ユーザーが音声で識別されたことを示します。レベルが400の場合は、ユーザーの識別がプロフィールPINと音声認識の両方で行われたことを示します。詳細については、PIN確認をAlexaスキルに追加するを参照してください。AuthenticationConfidenceLevel
オブジェクトは、Alexaがユーザーを識別した場合にのみスキルに渡されます。
アカウントリンクを使用しないperson
オブジェクトを含むスキルリクエストの形式
Alexaプロフィールはスキルリクエストのcontext.System.person.personId
フィールドで識別できます。
この例では、リクエストにcontext.System.person
オブジェクトは含まれていますが、サードパーティアプリへのアカウントリンクは含まれていません。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "amzn1.ask.account.ABC123..."
},
"person": {
"personId": "amzn1.ask.person.DEF456...",
"authenticationConfidenceLevel": {
"level": 300
}
}
}
},
"request": {...}
}
Alexaがユーザーを識別しない場合や、ユーザーがパーソナライズを有効にしていない場合、スキルリクエストにcontext.System.person
オブジェクトは追加されません。
アカウントリンクを使用するperson
オブジェクトを含むスキルリクエストの形式
ユーザーはアカウントリンクを使用して、サードパーティアプリのアカウントをAlexaデバイスに紐づいたAmazonアカウント、アカウントに登録されているユーザー自身のAlexaプロフィール、またはこれら両方にリンクできます。
たとえば、音声プロフィールを登録済みのユーザーが、配車アプリのアカウントをAlexaプロフィールにリンクし、該当するスキルを呼び出して車を手配すると、リクエストではそのユーザーのアカウントが使用されます。つまり、context.System.person
オブジェクトにはaccessToken
フィールドも含まれます。また、Amazonアカウント所有者が配車アカウントをAlexaにリンクしている場合もあります。この場合は、context.System.user
オブジェクトにもaccessToken
フィールドが含まれます。この例では、以下のようにリクエストのuser
オブジェクトとperson
オブジェクトの両方にaccessToken
値が含まれます。
たとえば、音声プロフィールを登録済みのユーザーが、配車アプリのアカウントを音声IDにリンクし、該当するスキルを呼び出して車を手配すると、リクエストではそのユーザーのアカウントが使用されます。つまり、person
オブジェクトにはaccessToken
フィールドも含まれます。また、デバイスに紐づいたAmazonアカウントが配車アプリのアカウントにリンクされている場合もあります。この場合は、user
オブジェクトにもaccessToken
フィールドが含まれます。この場合、リクエストではuser
オブジェクトとperson
オブジェクトの両方にaccessToken
値が含まれます。Alexaプロフィールはスキルリクエストのcontext.System.person.personId
フィールドで区別できます。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "amzn1.ask.account.ABC123...",
"accessToken": "Atza|<accessToken1>"
},
"person": {
"personId": "amzn1.ask.person.DEF456...",
"accessToken": "Atza|<accessToken2>",
"authenticationConfidenceLevel": {
"level": 300
}
}
}
},
"request": {...}
}
user
オブジェクトとperson
オブジェクトを取得するコード
次の例は、Node.jsでuser
オブジェクトを取得する方法を示しています。
let user = context.System.user;
次の例は、Node.jsでperson
オブジェクトとpersonId
フィールドを取得する方法を示しています。
let person = context.System.person;
let personId = person.personId;
各ユーザーのpersonId
値はスキルごとに異なります。また、ユーザーが複数の異なるAmazonアカウントを使って同じデバイスで同じスキルを使用する場合、スキルとユーザーは同じでも、それぞれ異なるpersonId
値が割り当てられます。異なるスキル、アカウント間ではpersonId
情報は共有されません。
詳細については、Systemオブジェクトを参照してください。
スキルをパーソナライズ機能に対応させる
識別済みユーザーに対するパーソナライズをサポートするには、スキルが次のケースに対応できる必要があります。
- スキル応答に
context.System.person
オブジェクトが含まれている場合は、このオブジェクトの値を使用して必要に応じてスキル応答をパーソナライズします。 person
オブジェクトが存在しない場合は、ユーザーレベルでのパーソナライズを使用しないワークフローを実行するか、セッションを適切に終了します。- ユーザーがアカウントリンクを設定していない場合は、スキルでアカウントリンクを必要としない一般的なスキルエクスペリエンスを提供するか、セッションを適切に終了します。
- スキルがアカウントリンクを使用する場合は、スキルが正しいユーザーのアカウントにアクセスしていることを確認します。
person
オブジェクトが含まれている場合は、person.accessToken
値を使用します。session.person.accessToken
値はユーザーごとに一意です。この値が使用できない場合は、context.System.user.accessToken
値をフォールバックとして使用します。どちらのaccessToken
値も使用できない場合でも、スキルはユーザーに良質なエクスペリエンスを提供する必要があります。アカウントリンクを必要としない一般的なスキルエクスペリエンスを提供するか、アカウントリンクカードを追加してユーザーにアカウントをリンクするよう依頼するか、セッションを適切に終了するようにします。
パーソナライズを使用するコンテンツをスキルで提供していない場合は、開発者コンソールでスキルのパーソナライズを有効にしたり、スキルマニフェストでパーソナライズのスコープを設定したりしないでください。
呼び出しリクエストの例
以下のシナリオで、太郎と花子は同じ家で暮らすユーザーであり、春子は別の家庭のユーザーです。太郎と花子は同じアカウントでAlexaデバイスを利用しており、そのアカウントに各自のAlexaプロフィールを登録しています。以下の例のaccessToken
値はプレースホルダーです。実際の値ではありません。アカウントリンクを使用しないスキルの場合は、以下のシナリオのaccessToken
フィールドは無視できます。context.System.user.userId
とcontext.System.person.personId
だけを確認してください。
識別済みの2人のユーザーが別々のサードパーティアカウントを所有
この例では、太郎と花子がスキル(ゲームスキルなど)を一緒に使用しています。このスキルは、別々のpersonId
トークンを使用して太郎と花子の応答をそれぞれ追跡し、スキルのバックエンドシステムでユーザー情報を更新します。このゲームスキルでは、Amazonアカウントレベルでアカウントリンクが設定されています。
最初に、太郎がスキルに応答します。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "<このスキルが有効になっているアクティブなAmazonアカウントを表す文字列>",
"accessToken": "<アクティブなAmazonアカウントにリンクされているサードパーティのアカウントを表すトークン>"
},
"person": {
"personId": "amzn1.ask.person.<太郎のAlexaプロフィールを表す文字列>",
"accessToken": "<太郎のAlexaプロフィールにリンクされているサードパーティのアカウントを表すトークン>",
"authenticationConfidenceLevel": {
"level": 300
}
}
}
},
"request": {...}
}
次は花子がスキルに応答します。現在の発話者は花子なので、それに合わせてperson
オブジェクトが変更されます。花子のAlexaプロフィールにリンクされているアカウントのタスクを実行する場合、スキルはリクエストのSystem.person.accessToken
を使用できます。さらにスキルサービスは、初回時に使用した太郎のSystem.user.accessToken
を保存しておき、このトークンをスキルセッション全体で使用できます。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "<このスキルが有効になっているアクティブなAmazonアカウントを表す文字列>",
"accessToken": "<Amazonアカウントにリンクされているサードパーティのアカウントを表すトークン>"
},
"person": {
"personId": "amzn1.ask.person.<花子のAlexaプロフィールを表す文字列>",
"accessToken": "<花子のAlexaプロフィールにリンクされているサードパーティのアカウントを表すトークン>",
"authenticationConfidenceLevel": {
"level": 300
}
}
}
},
"request": {...}
}
識別済みユーザーのAlexaプロフィールをサードパーティのアカウントにリンクし、Amazonアカウントをサードパーティのアカウントにリンクする
「配車サービス」という配車スキルがあり、サードパーティアプリが用意されているとします。この例では、太郎が配車サービスの個人アカウントをAlexaプロフィールにリンクしています。さらに太郎は、AlexaデバイスのAmazonアカウントを自分の配車サービスアカウントにリンクしています。太郎がリクエストすると、Alexaは太郎の声を識別します。その後のスキルリクエストは次のようになります。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "<このスキルが有効になっているアクティブなAmazonアカウントを表す文字列>",
"accessToken": "<アクティブなAmazonアカウントにリンクされているサードパーティのアカウントを表すトークン>"
},
"person": {
"personId": "amzn1.ask.person.<太郎のAlexaプロフィールを表す文字列>",
"accessToken": "<太郎のAlexaプロフィールにリンクされているサードパーティのアカウントを表すトークン>",
"authenticationConfidenceLevel": {
"level": 300
}
}
}
},
"request": {...}
}
識別済みユーザーのサードパーティアカウントをAlexaプロフィールにリンクし、別のサードパーティアカウントをAmazonアカウントにリンクする
この例では、花子は自分の配車サービスアカウントをAlexaプロフィールにリンクしています。太郎は自分の配車サービスアカウントを、AlexaデバイスのアクティブなAmazonアカウントにリンクしています。花子が配車サービススキルを呼び出すと、Alexaは花子の声を識別します。以下は、スキルリクエストの例です。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "<このスキルが有効になっているアクティブなAmazonアカウントを表す文字列>",
"accessToken": "<アクティブなAmazonアカウントにリンクされているサードパーティのアカウントを表すトークン>"
},
"person": {
"personId": "amzn1.ask.person.<花子のAlexaプロフィールを表す文字列>",
"accessToken": "<花子のAlexaプロフィールにリンクされているサードパーティのアカウントを表すトークン>",
"authenticationConfidenceLevel": {
"level": 300
}
}
}
},
"request": {...}
}
識別できないユーザーに対応する(Amazonアカウント所有者がサードパーティアカウントをリンクしている場合)
この例では、太郎と花子の家に招かれた春子が、この家のデバイスで配車サービススキルを呼び出します。Alexaは春子の声を識別しません。太郎の配車サービスアカウントはAmazonアカウントにリンクしているため、スキルは太郎のアカウントを使用します。これは、車を予約する際のuser.accessToken
値に反映されています。以下は、スキルリクエストの例です。
{
"version": "1.0",
"session": {...},
"context": {
...
"System": {
...
"user": {
"userId": "<このスキルが有効になっているアクティブなAmazonアカウントを表す文字列>",
"accessToken": "<アカウント所有者にリンクされているサードパーティのアカウントを表すトークン>"
}
}
},
"request": {...}
}
スキルに実装したパーソナライズ機能をテストする
Alexaスキルストアに認定を申請するときは、事前にスキルを綿密にテストしてください。詳細については、スキルのパーソナライズのテストとトラブルシューティングを参照してください。
PersistentUnitIdまたはPersistentEndpointIdに関する権限をリクエストするようスキルを設定する
PersistentUnitId
は在室状態がVACANTおよびOCCUPIEDの場合にのみ有効です。カスタムスキルを作成または編集する際に、開発者コンソールでPersistentUnitIdとPersistentEndpointIdに関する権限を有効にできます。
- 開発者コンソールで、目的のスキルを開きます(スキルを作成していない場合は作成します)。
- ビルドタブをクリックし、左下のアクセス権限をクリックします。
- アクセス権限セクションで、Read PersistentUnitId、Read PersistentEndpointIdをオンにします。
SMAPIまたはASK CLIを使用してスキルを作成している場合は、スキルマニフェストの権限を直接編集して、パーソナライズのスコープ(alexa::persistent_unit_id::read
、alexa::persistent_endpoint_id::read
)を追加することもできます。
最終更新日: 2023 年 05 月 15 日