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
オブジェクト
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_STORE 、GOOGLE_PLAY_STORE のいずれかです。 |
文字列の列挙値 | 〇 |
identifier |
iOS App StoreまたはGoogle Playストア内のアプリのIDです。iOSアプリの場合は、id123456789など、数値のIDとなります。Androidインテントの場合、通常はcom.cityguide.android.ctgdmobile などのパッケージ名となります。 |
文字列 | ◯ |