Alexa for Appsスキルマニフェストのリファレンス



Alexa for Appsスキルマニフェストのリファレンス

スキルでAlexa for Appsを有効にするには、appLinkオブジェクトをスキルマニフェストに追加し、インターフェースの種類としてAPP_LINKSのサポートを宣言する必要があります。このセクションでは、appLinkオブジェクトの構造について説明します。スキルマニフェスト全体の形式については、スキルマニフェストのスキーマを参照してください。

Skill Connectionsリクエストのスキルマニフェストの例

{
   "manifest": {
      "apis": {
         "custom": {
            "endpoint": {
               "uri": "arn:aws:lambda:us-east-1:040623927470:function:cityGuideSkillLambda"
            },
            "interfaces": [
               {
                  "type":"APP_LINKS"
               }
            ],
================== ALEXA FOR APPSの追加開始 ==================
            "appLink": {
               "linkedApplications": [
                  {
                     "friendlyName":{
                        "default":"シティガイド",
                        "localizedNames": [
                           {"locale":"de-DE", "name":"Stadtführer"}
                        ]
                     },
                     "catalogInfo": {
                        "type": "IOS_APP_STORE",
                        "identifier": "id123456789"
                     },
                     "customSchemes": ["cityguide://","ctgd://"],
                     "domains": ["cityguide.com","ctgd.com"]
                  },
                  {
                     "friendlyName":{
                        "default":"シティガイド",
                        "localizedNames": [
                           {"locale":"de-DE", "name":"Stadtführer"}
                        ]
                     },
                     "catalogInfo": {
                        "type": "GOOGLE_PLAY_STORE",
                        "identifier": "com.cityguide.android.ctgdmobile"
                     },
                     "customSchemes": ["cityguide://","ctgd://"],
                     "domains": ["cityguide.com","ctgd.com"]
                  }
               ]
            }
         }
      }
   }
}

appLinkオブジェクトには、スキルがリンクする各アプリのオブジェクトが含まれます。iOSバージョンとAndroidバージョンのアプリがある場合、これらのバージョンは別のアプリとしてカウントされます。

  • ディープリンクリクエストにURI、プレフィックス、パッケージ名のいずれかが含まれる場合、スキルマニフェストのdomainsフィールドやcustomSchemesフィールドの対応する項目と一致する必要があります。一致しない場合、ディープリンクリクエストは権限がないとしてエラーになります。
フィールド 説明 必須
linkedApplications アプリのリスト オブジェクトの配列
フィールド 説明 必須
friendlyName ロケールごとのアプリ名です。 オブジェクト
catalogInfo iOS App StoreまたはGoogle Playストア内のアプリへのリンクに必要な情報です。 オブジェクト
customSchemes カスタムスキームリンクの検証に使用するカスタムスキームのカンマ区切りリストです。実行時に、この値で作成した正規表現を使ってディープリンク内のカスタムスキームを検証します。カスタムスキームリンクリクエストに必須です。 文字列の配列
domains ユニバーサルリンクの検証に使用するドメインのリストです。実行時に、この値で作成した正規表現を使ってディープリンク内のドメインを検証します。ユニバーサルリンクとウェブサイトのディープリンクに必須です。 文字列の配列

friendlyNameオブジェクト

friendlyNameオブジェクトは、Alexaがディープリンクの際に自動で提供するすべての音声応答で、アプリ名をどう表すかを示します。

たとえば、ユーザーがアプリをインストールしていない場合のフォールバックシナリオでは、Alexaはユーザーをアプリストアにリダイレクトします。このようなケースでは、Alexaは、たとえば「このエクスペリエンスを有効にするには、アプリをインストールする必要があります。アプリストアの<friendly name>はこちらです。」などのように言います。

フィールド 説明 必須
default ホームロケールでのアプリのフレンドリー名です。localizedNamesを指定しない場合、Alexa for Appsはすべてのロケールにこの値を使用します。 文字列
localizedNames ユーザーのデバイスのロケールがホームロケールでない場合のアプリのフレンドリー名の配列を含みます。アプリのフレンドリー名がロケールによって異なる場合は必須です。すべてのロケールで同じ名前の場合、この配列を含める必要はありません。localizedNames値を指定できるのは、スキルマニフェストのmanifest.publishingInformation.localesセクションに含まれるロケールのみです。 オブジェクト配列
フィールド 説明 必須
locale ロケール(de-DEなど)です。 文字列
names そのロケールでのアプリ名です。 文字列

catalogInfoオブジェクト

catalogInfoオブジェクトには、Alexa for AppsがiOS App StoreやGoogle Playストアのアプリにリンクするのに必要な情報が含まれます。

identifierは、ディープリンクリクエストの検証に使用されます。たとえば、Androidインテントディープリンクリクエストは、ルートパッケージ名がcatalogInfoオブジェクトにあるインテント用である必要があります。そうでない場合、リクエストは権限がないとしてエラーになります。

フィールド 説明 必須
type IOS_APP_STOREGOOGLE_PLAY_STOREのいずれかです。 文字列の列挙値
identifier iOS App StoreまたはGoogle Playストア内のアプリのIDです。iOSアプリの場合は、id123456789など、数値のIDとなります。Androidインテントの場合、通常はcom.cityguide.android.ctgdmobileなどのパッケージ名となります。 文字列