アカウントのリンクのスキーマ



アカウントリンクのスキーマ

accountLinkingRequest構造体は、開発者コンソールのビルド>アカウントリンクセクションに表示されるアカウントリンク情報をJSONで表したものです。

アカウントリンクの情報は、ask apiコマンドのcreate-account-linkingget-account-linkingのサブコマンドを使って作成、取得できます。

関連トピック: Alexa Skills KitコマンドラインインターフェースとAlexaスキル管理APIの概要

アカウントリンクリクエスト

フィールド 説明
accessTokenScheme HTTP_BASICREQUEST_BODY_CREDENTIALSなど、使用する認証の種類です。AUTH_CODEが指定されている場合にのみ必須です。 文字列
accessTokenUrl 認可トークンをリクエストするためのURIです。typeAUTH_CODEが指定されている場合にのみ必須です。 文字列
authorizationUrl 認証画面のURI 文字列
clientId ログインページがスキルからのリクエストを認識するために使用する識別子です。 文字列
clientSecret アクセストークンURIを使ってAlexaサービスの認証を行うための認証情報です。clientIdと組み合わせて、Alexaからのリクエストを識別するのに使用されます。 文字列
defaultTokenExpirationInSeconds 任意です。アクセストークンの有効期間を秒単位で指定します。OAuthクライアントがexpires_inを返さない場合にこの値を使用します。OAuthクライアントがexpires_inを返す場合は、OAuthクライアントによって指定された値が使用されます。typeAUTH_CODEの場合にのみ適用されます。 整数
domains ログインページがコンテンツを取得する追加のドメインのリストです。最大15個のドメインを指定できます。 文字列の配列
reciprocalAccessTokenUrl このURIは、Alexaアクセストークンと交換できる認可コードを使用して呼び出されます。 文字列
redirectUrls 任意です。ユーザーがAlexaアプリでリンクのリクエストに同意した後、またはアプリ間アカウントリンクを使ってAmazonにログインした後に、ユーザーをアプリに送り返すリンクです。このようなリンクは、開発者コンソールのビルド>アカウントリンクページで、ユーザーのリダイレクト先のURLフィールドを使って指定します。 文字列の配列
scopes user_idなどユーザーアカウントに必要なアクセス権限を識別します。 このフィールドはスマートホームスキルでは必須です。最大15個のスコープを指定できます。 文字列の配列
skipOnEnablement ユーザーがアカウントリンクフローを開始せずにスキルを有効にする場合は、trueに設定します。ユーザーがスキルを有効にする際に通常のアカウントリンクフローを必要とする場合は、falseに設定します。ユーザーがアカウントをリンクせずにスキルを有効にするを参照してください。  
type OAuth Authorization grant種別を指定します。AUTH_CODEまたはIMPLICITを使用します。注: スマートホームスキルでは必ずAUTH_CODEを使用してください。 文字列

アカウントリンクリクエストのサンプル

{
  "accountLinkingRequest": {
    "skipOnEnablement": "true",
    "type": "AUTH_CODE",
    "authorizationUrl": "string",
    "domains": [
      "string"
    ],
    "clientId": "string",
    "scopes": [
      "string"
    ],
    "accessTokenUrl": "string",
    "reciprocalAccessTokenUrl": "string",
    "clientSecret": "string",
    "accessTokenScheme": "HTTP_BASIC",
    "defaultTokenExpirationInSeconds": 3600,
    "redirectUrls": [
      "string"
    ]
  }
}

リダイレクト先のURL

アカウントリンクでは、 2 種類のリダイレクト先 URL(Alexaのリダイレクト先のURLとユーザーのリダイレクト先のURL)が使用されます。違いは次のとおりです。

  • Alexaのリダイレクト先のURL - AlexaアプリへリダイレクトするURLです。定数値が事前に定義されています。開発者はこれらのURLを定義できません。そのため、前のセクションで定義したアカウントリンクのリクエストのスキーマには含まれていません。これらのURLは、開発者コンソールのビルド>アカウントリンクページで、Alexaのリダイレクト先のURLフィールドに表示されます。Alexaアプリは認可URIにリクエストを送信するときに、クエリパラメーターredirect_uriフィールドを使ってAlexaのリダイレクト先のURLを渡します。authorization code grantの場合、redirect_uriの形式は {baseUrl}/api/skill/link/{vendorId}となります。implicit grantの場合、redirect_uriの形式は{baseURL}/spa/skill/account-linking-status.html?vendorId={vendorId}となります。baseUrlの有効な値は、https://pitangui.amazon.comhttps://layla.amazon.comhttps://alexa.amazon.co.jpです。
  • ユーザーのリダイレクト先のURL - 開発したアプリにリダイレクトするURLです。アプリ間アカウントリンクの実装にのみ使用されます。これらのURLは、開発者コンソールのビルド>アカウントリンクページにある、ユーザーのリダイレクト先のURLフィールドで指定します。SMAPIを使用している場合は、前のセクションで定義したアカウントリンクのリクエストのスキーマでredirectUrlsフィールドを使用します。