カスタムのIntentおよびパラメータを追加することで、ユーザーがSiriやショートカットアプリを使ってより迅速かつ効率的に操作できるようにします。
フレームワーク
- Intents
- Intents
UI
概要
アプリにカスタムインテントとパラメータを追加することによって、ユーザーがSiriを使って会話形式で操作したり、ショートカットアプリでユーザーがカスタマイズできるショートカットを提供できます。ユーザーが声でショートカットを呼び出すと、Siriが、ショートカットの完了に必要な追加情報を収集する対話を開始します。ショートカットアプリでは、ショートカットを呼び出した時に何を実行するかを変更できます。カスタムインテントおよびパラメータを利用したアプリを取得するには、Soup Chef: Accelerating App Interactions with Shortcuts(英語)を参照し、サンプルアプリ「Soup Chef」をダウンロードしてください。
アプリターゲットにIntent Definition Fileを追加する
「File」>「New」>「File」の順に選択し、Xcodeプロジェクトに新規の「SiriKit Intent Definition File」を追加します。必ずアプリターゲットを選択してください。

Intentを定義する
新規Intentを作成し、そのIntentの動作を定義します。
-
作成した
Intents
ファイルを選択します。.intentdefiniton -
Xcodeのメニューバーで、「Editor」>「New Intent」を選択します。
-
VerbNounの命名規則に従ってIntent名を付けます(SetAlarm、CheckOrderStatusなど)。
-
後のセクションで説明しますが、選択したカテゴリによってデフォルトのSiriダイアログが定義されるので、選択したカテゴリがIntentの目的と一致していることを確認します。
-
「Title」フィールドに、人が読んでわかるIntentのタイトルを追加します。
-
「Description」フィールドに、Intentが何をするのか説明する短い文を追加します。
図2では、「OrderSoup」という名前のカスタムインテントに、カテゴリ、タイトル、説明が設定されています。

メモ
カスタムインテントに対する以下のレスポンスコードは、Xcodeによって自動的に作成されます。unspecified
、ready
、continue
、in
、success
、failure
、およびfailure
。
Intentパラメータを定義する
Intentを使用する前に、スープや量など、Intentのパラメータを定義する必要があります。新規パラメータを作成するには、「Parameters」フィールドのプラス記号ボタンをクリックし、「Type」フィールドでシステムパラメータタイプまたはカスタムタイプを選択します。システムタイプはシステムによって事前定義され、カスタムタイプでは独自のタイプを作成できます。パラメータ名は小文字で始まる必要がありますが、カスタムタイプ名は大文字で始まる必要があります。
Xcodeのデフォルト設定で「User-facing」チェックボックスがオンになります。このチェックボックスは、このパラメータをショートカットアプリで設定してSiriとショートカットアプリの両方で実行時にリゾルブできるかどうかを制御します。

パラメータのメタデータとSiriダイアログデータを追加する
アプリ側から提供したパラメータメタデータに基づいて、Siriは、追加入力を必要とするショートカットを完了させるようユーザーに促すことができます。ショートカットでさまざまな量のスープを注文してもらうなど、ユーザーにコントロールしてほしい各パラメータの「Input」フィールドを設定します。
各パラメータのリゾルブリザルトについて、Siriダイアログをカスタマイズすることもできます。「Prompt」フィールドに、Siriからアプリユーザーに言ってほしいフレーズを入力します。

パラメータ間の関係を確立する
パラメータ間の関係を使用して、親パラメータとの関連に基づいて、特定のパラメータがSiriで声によってプロンプトされるかどうかを決定できます。親パラメータの設定手順は、以下の通りです。
-
「Relationship」セクションを展開します。
-
「Parent Parameter」ドロップダウンから、希望するパラメータを選択します。
-
「Show If Parent」ドロップダウンから、パラメータを表示するタイミングを選択します。
-
親が特定の値を持つ必要がある場合は、「Value」ドロップダウンから値を選択します。
以下の例では、store
パラメータがorder
親パラメータの子になっています。order
パラメータはpickup
とdelivery
の2つの値の列挙型です。ユーザーが注文したものを取りに行くとSiriに伝えると、store
の値が自動的に使用されます。

ユーザーが設定可能なショートカットを定義する
ユーザーが設定可能なショートカットは、ユーザーがショートカットアプリで設定し、Siriで対話的に使用できるショートカットです。ショートカットをユーザーが設定できるようにする手順は、以下の通りです。
-
「Intent is user-configurable」チェックボックスを選択します。
-
「Summary」フィールドに入力します。
以下の例は、soup
、order
、delivery
パラメータをサポートするショートカットです。「Summary」にsoup
とorder
のパラメータが含まれており、delivery
は「More Options」セクションにあります。

Intentのレスポンスとアウトプットを設定する
Intentのレスポンスは、スープの注文など、Intentのアクションの結果を表します。レスポンスのテンプレートを使うと、成功または失敗が発生した際にSiriが適切なダイアログで応答できます。プロパティを追加して、Siriダイアログまたはショートカットのアウトプットにデータを渡せるようにします。アウトプットにより、ユーザーは、ショートカットエディタのほかのアクションでショートカットの結果を使用できます。
HomePod、CarPlay、AirPodsなど、ユーザーが画面を見ていない状況では、ダイアログをプリントする代わりに、音声でのみダイアログを提供します。
以下の例は、注文が完了した場合のレスポンスです。合計金額、ユーザーの注文内容、予想所要時間が伝えられます。
