Alexa for Appsスキルマニフェストのリファレンス
スキルでAlexa for Appsを有効にするには、スキルマニフェストを変更する必要があります。次の例とリファレンスでは、 appLink
オブジェクトをスキルマニフェストに追加し、APP_LINKS_V2
インターフェースのサポートを宣言する方法について説明します。スキルマニフェスト全体の形式については、スキルマニフェストのスキーマを参照してください。
Skill Connectionsリクエストのスキルマニフェストの例
次の例は、Skill Connectionsリクエストのスキルマニフェストを示しています。
{
"manifest": {
"apis": {
"custom": {
"endpoint": {
"uri": "arn:aws:lambda:us-east-1:040623927470:function:cityGuideSkillLambda"
},
"interfaces": [
{
"type":"APP_LINKS_V2"
}
],
================== ALEXA FOR APPSの追加開始 ==================
"appLink": {
"linkedApplications": [
{
"friendlyName":{
"default":"シティガイド",
"localizedNames": [
{
"locale":"ja-JP",
"name":"シティガイド"
}
]
},
"catalogInfo": {
"type": "IOS_APP_STORE",
"identifier": "id123456789"
},
"customSchemes": [
"cityguide://",
"ctgd://"
],
"domains": [
"cityguide.com",
"ctgd.com"
]
},
{
"friendlyName":{
"default":"シティガイド",
"localizedNames": [
{
"locale":"ja-JP",
"name":"シティガイド"
}
]
},
"catalogInfo": {
"type": "GOOGLE_PLAY_STORE",
"identifier": "com.cityguide.app"
},
"customSchemes": [
"cityguide://",
"ctgd://"
],
"domains": [
"cityguide.com",
"ctgd.com"
],
"androidCustomIntents": [
{
"component": "com.someapp.SomeActivity",
"action": "com.someapp.SOME_ACTION"
}
]
}
],
"linkedWebDomains": [
"grubbhouse.com",
"amazon.com",
"yahoo.com"
],
"linkedCommonSchemes": {
"IOS_APP_STORE": [
"MAPS",
"TEL"
],
"GOOGLE_PLAY_STORE": [
"MAPS",
"TEL"
]
},
"linkedAndroidCommonIntents": [
{
"intentName": "SHOW_IN_MAP",
"catalogType": "GOOGLE_PLAY_STORE"
}
]
}
================== ALEXA FOR APPSの追加終了 ==================
}
}
},
"permissions": [
{
"name": "alexa::devices:app:push_notifications"
}
]
}
permissions
配列にalexa::devices:app:push_notifications
を含めてください。アプリリンクのスキルマニフェストのリファレンス
appLinkオブジェクト
appLink
オブジェクトには、スキルがリンクする各アプリのオブジェクトが含まれます。iOSバージョンとAndroidバージョンのアプリがある場合、これらのバージョンは別のアプリとしてカウントされます。
ディープリンクリクエストにURI、プレフィックス、パッケージ名のいずれかが含まれる場合、スキルマニフェストのdomains
フィールドやcustomSchemes
フィールドの対応する項目と一致する必要があります。一致しない場合、ディープリンクリクエストは権限がないとしてエラーになります。
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
linkedApplications |
関連付けられたアプリのリストです。 | オブジェクトの配列 | 少なくともlinkedApplications 、linkedWebDomains 、linkedCommonSchemes のいずれかを宣言する必要があります。 |
linkedWebDomains |
スキルがブラウザで起動するウェブサイトのドメインまたはサブドメインのリストです。このフィールドは、関連付けられたアプリがない場合にのみ使用します。ユニバーサルリンクではありません。 | 文字列の配列 | 少なくともlinkedApplications 、linkedWebDomains 、linkedCommonSchemes のいずれかを宣言する必要があります。 |
linkedCommonSchemes |
iOS App StoreまたはGoogle Playストア内でスキルが起動できる共通スキームです。 | オブジェクト | 少なくともlinkedApplications 、linkedWebDomains 、linkedCommonSchemes のいずれかを宣言する必要があります。 |
linkedCommonSchemes.IOS_APP_STORE |
iOS App Store内でスキルが起動できる共通スキームのリストです。有効な値はMAPS およびTEL です。 |
列挙の配列 | ✕ |
linkedCommonSchemes.GOOGLE_PLAY_STORE |
Google Playストア内でスキルが起動できる共通スキームのリストです。有効な値はMAPS およびTEL です。 |
列挙の配列 | ✕ |
linkedAndroidCommonIntents |
スキルが起動できるAndroid共通インテントのリストです。 | オブジェクトの配列 | ✕ |
linkedAndroidCommonIntents.intentName |
Android共通インテントの名前です。次のいずれかになります: SHOW_IN_MAP 、ADD_CALENDAR_EVENT 、PLAY_MEDIA 、START_PHONE_CALL 、OPEN_SETTINGS この値は、Androidインテントの形式を指定します。たとえば、AndroidインテントのSHOW_IN_MAP では、"action"が"android.intent.action.VIEW"、"data"が"geo:"である必要があります。 |
列挙 | ✕ |
linkedAndroidCommonIntents.catalogType |
リンクされたインテントカタログの種類です。現在、指定可能な値はGOOGLE_PLAY_STORE のみです。 |
列挙 | ✕ |
linkedApplicationsオブジェクト
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
friendlyName |
ロケールごとのアプリ名です。 | オブジェクト | ◯ |
catalogInfo |
iOS App StoreまたはGoogle Playストア内のアプリへリンクするためにAlexa for Appsが必要な情報です。 | オブジェクト | ◯ |
customSchemes |
カスタムスキームリンクの検証に使用するカスタムスキームのカンマ区切りリストです。Alexa for Appsは、実行時にこの値で作成した正規表現を使ってディープリンク内のカスタムスキームを検証します。カスタムスキームリンクリクエストに必須です。 | 文字列の配列 | ✕ |
domains |
ユニバーサルリンクの検証に使用するドメインのリストです。Alexa for Appsは、実行時にこの値で作成した正規表現を使ってディープリンク内のドメインを検証します。ユニバーサルリンクとウェブサイトのディープリンクに必須です。 | 文字列の配列 | ✕ |
androidCustomIntents |
Androidカスタムインテントのリストです。 | オブジェクトの配列 | ◯ |
friendlyNameオブジェクト
friendlyName
オブジェクトは、Alexaがディープリンクの際に自動で提供するすべての音声応答で、アプリ名をどう表すかを示します。
たとえば、ユーザーがアプリをインストールしていない場合のフォールバックシナリオでは、AlexaはユーザーをiOS App StoreかGoogle Playストアにリダイレクトします。このようなケースでは、Alexaは、たとえば「このエクスペリエンスを有効にするには、アプリをインストールする必要があります。App Storeの<App Name>です。」
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
default |
ホームロケールでのアプリのフレンドリー名です。localizedNames を指定しない場合、Alexa for Appsはすべてのロケールにこの値を使用します。 |
文字列 | ◯ |
localizedNames |
ユーザーのデバイスのロケールがホームロケールでない場合のアプリのフレンドリー名の配列を含みます。この配列は、アプリのフレンドリー名がロケールによって異なる場合は必須です。localizedNames 値を指定できるのは、スキルマニフェストのmanifest.publishingInformation.locales セクションに含まれるロケールのみです。 |
オブジェクト配列 | ✕ |
localizedNames[].locale |
ロケール(de-DE など)です。 |
文字列 | ◯ |
localizedNames[].names |
そのロケールでのアプリ名です。 | 文字列 | ◯ |
catalogInfoオブジェクト
catalogInfo
オブジェクトには、Alexa for AppsがiOS App StoreやGoogle Playストアのアプリにリンクするのに必要な情報が含まれます。
Alexa for Appsは、identifier
フィールドをディープリンクリクエストの検証に使用します。たとえば、Androidインテントディープリンクリクエストは、ルートパッケージ名がcatalogInfo
オブジェクトにあるインテント用である必要があります。そうでない場合、リクエストは権限がないとしてエラーになります。
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
type |
IOS_APP_STORE 、GOOGLE_PLAY_STORE のいずれかです。 |
文字列の列挙値 | 〇 |
identifier |
iOS App StoreまたはGoogle Playストア内のアプリのIDです。iOSアプリの場合は、id123456789など、数値のIDとなります。Androidインテントの場合、通常はcom.cityguide.app などのパッケージ名となります。 |
文字列 | ◯ |
androidCustomIntentsオブジェクト
androidCustomIntents
オブジェクトを使用してAndroidカスタムインテントを宣言します。スキルがAndroidカスタムインテントを送信する場合、スキルマニフェストでカスタムインテントを宣言する必要があります。
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
component |
Androidカスタムインテントのコンポーネントです。action が指定されていない場合は必須です。 |
文字列 | ✕ |
action |
Androidカスタムインテントのアクションです。component が指定されていない場合は必須です。 |
文字列 | ✕ |
関連トピック
最終更新日: 2024 年 05 月 08 日