ユーザーがアカウントをリンクせずにスキルを有効にする



ユーザーがアカウントをリンクせずにスキルを有効にする

デフォルトでは、Alexaアプリでアカウントリンクを使用するカスタムスキルをユーザーが有効にすると、アカウントリンクフローが自動的に開始されます。この場合、特にスキルが認証を必要としない機能を使用する、今すぐアカウントをリンクする必要のないユーザーに手間をかけさせることになります。このデフォルト動作を変更すると、簡単にスキルを有効にして認証が不要な機能をすぐに使用できるようにます。

Alexaアプリのアカウントリンクとユーザーエクスペリエンス

ユーザーがストアでスキルを表示してAlexaアプリでスキルを有効にする場合、エクスペリエンスはアカウントリンクの設定によって変わります。

ユーザーがアカウントをリンクしないスキルの有効化を許可されている ユーザーがアカウントをリンクしないスキルの有効化を許可されていない(デフォルト)

ストアのスキルの詳細カード

詳細カードにアカウントリンクが使用できることが記載されています。

アカウントリンクを使用できますが、スキルを有効にするときに完了する必要はありません。

スキルの詳細カードにアカウントリンクが必須であることが記載されています。

アカウントリンクは必須です

ユーザーがスキルを有効にすると

スキルはすぐに有効になり、アカウントリンクフローは表示されません。

Alexaアプリにログインページが表示され、通常のアカウントリンクフローが開始されます。

ユーザーがスキルと対話する

ユーザーは通常どおりスキルと対話します。

  • アカウントリンクが不要なリクエストは通常どおり処理されます。
  • アカウントリンクが必要なリクエストの場合は、ユーザーにアカウントリンクが必要であることが通知され、アカウントリンクカードに戻ります。

ユーザーはいつでもAlexaアプリに戻ってアカウントリンクプロセスを完了できます。このプロセスは、アカウントリンクカードまたはスキルの詳細カードから開始できます。

ユーザーは通常どおりスキルと対話します。

  • ユーザーがスキルを有効にした際にアカウントを正常にリンクしている場合は、リクエストは通常どおり処理されます。
  • ユーザーがアカウントリンクプロセスをキャンセルした場合、またはプロセスが失敗した場合、リクエストはユーザーにアカウントリンクが必要であることを通知し、アカウントリンクカードに戻ります。
Alexaアプリのアカウントリンクカード
アカウントをリンクしていないユーザーが認証の必要なリクエストを行った場合は、アカウントリンクカードを使用します

ユーザーがアカウントをリンクせずにスキルを有効にする場合

スキルにアカウントリンクが不要で役に立つ機能が含まれている場合、ユーザーがアカウントをリンクしないでスキルを有効にできる必要があります。アカウントを接続したくないユーザーにもスキルを使ってもらえるように、アカウントリンクが必要な機能と不要な機能をスキルの説明で説明することをお勧めします。

アカウントリンクが必須なインテントは、次の両方を含む応答を返す必要があります。

  • その機能にはアカウントリンクが必要であることを説明する読み上げテキスト。このテキストで、アカウントをリンクするためにユーザーをAlexaアプリに誘導する必要もあります。
  • LinkAccountカード。

たとえば、次のやり取りではユーザーがアカウントを必要とするリクエストを行います。

ユーザーはタクシー予約を有効にしましたがアカウントリンクフローは開始していません。

ユーザー: アレクサ、タクシー予約を開いて。
Alexa: タクシー予約へようこそ。道案内と交通情報を提供できます。タクシー予約アカウントをお持ちでしたら、配車をリクエストできます。どちらにしますか?
ユーザー: 中央通り123番地まで乗せて。
Alexa: 車を手配するには、タクシー予約アカウントが必要です。Alexaアプリを開き、リンクをクリックしてタクシー予約アカウントをAlexaにリンクしてください。
スキルはアカウントリンクカードを送信します。詳細はトークンが無効または存在しない場合にユーザーに応答するを参照してください。

トークンが無効または存在しない場合にユーザーに応答するを参照してください。

次の例では、ユーザーのリクエストにアカウントは不要なため、スキルは通常通りにリクエストを処理します。

ユーザーはタクシー予約を有効にしましたがアカウントリンクフローは開始していません。

ユーザー: アレクサ、タクシー予約を開いて。
Alexa: タクシー予約へようこそ。道案内と交通情報を提供できます。タクシー予約アカウントをお持ちでしたら、配車をリクエストできます。どちらにしますか?
ユーザー: 神戸の交通情報を教えて。 (タクシー予約アカウントを必要としない一般的なリクエストです。)
Alexa: 今日午前9時現在の神戸の交通状況は…

スキルにアカウントリンクが不要で役に立つ機能が含まれていない場合、ユーザーがアカウントリンクなしでスキルを有効にすることを許可してくださいオプションをオフにしてデフォルトの動作を使用してください。

ユーザーがアカウントをリンクせずにスキルを有効にできるようにスキルを設定する

開発者コンソール、ASK CLI、またはスキル管理APIを使用して、ユーザーがアカウントリンクなしでスキルを有効にすることを許可してくださいオプションを設定できます。

公開中のスキルの更新

このオプションは以前に公開されたスキルでも変更できます。そのスキルを既に有効にしているユーザーに影響はありません。変更が行われた後にスキルを有効にした新規ユーザーのエクスペリエンスのみが変更されます。このオプションの変更には、スキルの再認定が必要であることに注意してください。

ユーザーにアカウントをリンクしないスキルの有効化を許可するには:

  • 開発者コンソール: 開発者コンソールのビルド >アカウントリンクセクションに移動して、ユーザーがアカウントリンクなしでスキルを有効にすることを許可してくださいオプションを選択します。
  • ASK CLIcreate-account-linkingサブコマンドを使用して、「ユーザーがアカウントリンクなしでスキルを有効にすることを許可してください」と表示されたときにはいを指定します。このオプションを使用するには、ASK CLIの最新バージョンを使用してください。次のコマンドで最新バージョンがあることを確認できます。

    $ npm update -g ask-cli
    
  • スキル管理API: アカウントリンクスキーマでskipOnEnablementオプションをtrueに設定し、アカウントリンクの更新リクエストを送信します。

以下は、skipOnEnablementtrueに設定されたアカウントリンクスキーマの例です。

{
  "accountLinkingResponse": {
    "skipOnEnablement": true,
    "accessTokenScheme": "HTTP_BASIC",
    "accessTokenUrl": "https://api.amazon.com/auth/o2/token",
    "authorizationUrl": "https://www.amazon.com/ap/oa",
    "clientId": "amzn1.application-oa2-client.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "domains": [],
    "scopes": [
      "Profile"
    ],
    "type": "AUTH_CODE"
  }
}

コードとメタデータを更新する

インテントハンドラーが以下を実行することを確認します。

  • アカウントリンクが不要なインテントは、直接ユーザーのリクエストを処理します。
  • アカウントリンクを必要とするインテントは、トークンを検証し、トークンが存在しないか無効な場合はアカウントリンクカードを返します。ユーザーエクスペリエンスを向上させるには、関連ユーザーデータを永続データストアに保存して、ユーザーがアカウントをリンクさせた後、続きからスキルに戻れるようにします。

また、スキルストアのメタデータも確認します。アカウントを接続したくないユーザーにもスキルを使ってもらえるように、アカウントリンクが必要な機能と不要な機能をスキルの説明で説明することをお勧めします。

アカウントリンク不要で有効にできるスキルのスキル詳細ページ
アカウントリンク不要で有効にできるスキルのスキル詳細ページ