記事

SiriショートカットとショートカットAppによるユーザー操作の追加

カスタムのIntentおよびパラメータを追加することで、ユーザーがSiriやショートカットAppを使ってより迅速かつ効率的に操作できるようにします。

概要

AppにカスタムIntentとパラメータを追加することによって、ユーザーがSiriを使って会話形式で操作したり、ショートカットAppでユーザーがカスタマイズできるショートカットを提供できます。ユーザーが声でショートカットを呼び出すと、Siriが、ショートカットの完了に必要な追加情報を収集する対話を開始します。ショートカットAppでは、ショートカットを呼び出した時に何を実行するかを変更できます。カスタムIntentおよびパラメータを利用したAppを取得するには、Soup Chef: Accelerating App Interactions with Shortcuts(英語)を参照し、サンプルApp「Soup Chef」をダウンロードしてください。

AppターゲットにIntent Definition Fileを追加する

「File」>「New」>「File」の順に選択し、Xcodeプロジェクトに新規の「SiriKit Intent Definition File」を追加します。必ずAppターゲットを選択してください。

Intentを定義する

新規Intentを作成し、そのIntentの動作を定義します。

  1. 作成したIntents.intentdefinitonファイルを選択します。

  2. Xcodeのメニューバーで、「Editor」>「New Intent」を選択します。

  3. VerbNounの命名規則に従ってIntent名を付けます(SetAlarm、CheckOrderStatusなど)。

  4. 後のセクションで説明しますが、選択したカテゴリによってデフォルトのSiriダイアログが定義されるので、選択したカテゴリがIntentの目的と一致していることを確認します。

  5. 「Title」フィールドに、人が読んでわかるIntentのタイトルを追加します。

  6. 「Description」フィールドに、Intentが何をするのか説明する短い文を追加します。

図2では、「OrderSoup」という名前のカスタムIntentに、カテゴリ、タイトル、説明が設定されています。

Intentパラメータを定義する

Intentを使用する前に、スープや量など、Intentのパラメータを定義する必要があります。新規パラメータを作成するには、「Parameters」フィールドのプラス記号ボタンをクリックし、「Type」フィールドでシステムパラメータタイプまたはカスタムタイプを選択します。システムタイプはシステムによって事前定義され、カスタムタイプでは独自のタイプを作成できます。パラメータ名は小文字で始まる必要がありますが、カスタムタイプ名は大文字で始まる必要があります。

Xcodeのデフォルト設定で「User-facing」チェックボックスがオンになります。このチェックボックスは、このパラメータをショートカットAppで設定してSiriとショートカットAppの両方で実行時にリゾルブできるかどうかを制御します。

パラメータのメタデータとSiriダイアログデータを追加する

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

各パラメータのリゾルブリザルトについて、Siriダイアログをカスタマイズすることもできます。「Prompt」フィールドに、SiriからAppユーザーに言ってほしいフレーズを入力します。

パラメータ間の関係を確立する

パラメータ間の関係を使用して、親パラメータとの関連に基づいて、特定のパラメータがSiriで声によってプロンプトされるかどうかを決定できます。親パラメータの設定手順は、以下の通りです。

  1. 「Relationship」セクションを展開します。

  2. 「Parent Parameter」ドロップダウンから、希望するパラメータを選択します。

  3. 「Show If Parent」ドロップダウンから、パラメータを表示するタイミングを選択します。

  4. 親が特定の値を持つ必要がある場合は、「Value」ドロップダウンから値を選択します。

以下の例では、storeLocationパラメータがorderType親パラメータの子になっています。orderTypeパラメータはpickupdeliveryの2つの値の列挙型です。ユーザーが注文したものを取りに行くとSiriに伝えると、storeLocationの値が自動的に使用されます。

ユーザーが設定可能なショートカットを定義する

ユーザーが設定可能なショートカットは、ユーザーがショートカットAppで設定し、Siriで対話的に使用できるショートカットです。ショートカットをユーザーが設定できるようにする手順は、以下の通りです。

  1. 「Intent is user-configurable」チェックボックスを選択します。

  2. 「Summary」フィールドに入力します。

以下の例は、souporderTypedeliveryLocationパラメータをサポートするショートカットです。「Summary」にsouporderTypeのパラメータが含まれており、deliveryLocationは「More Options」セクションにあります。

Intentのレスポンスとアウトプットを設定する

Intentのレスポンスは、スープの注文など、Intentのアクションの結果を表します。レスポンスのテンプレートを使うと、成功または失敗が発生した際にSiriが適切なダイアログで応答できます。プロパティを追加して、Siriダイアログまたはショートカットのアウトプットにデータを渡せるようにします。アウトプットにより、ユーザーは、ショートカットエディタのほかのアクションでショートカットの結果を使用できます。

HomePod、CarPlay、AirPodsなど、ユーザーが画面を見ていない状況では、ダイアログをプリントする代わりに、音声でのみダイアログを提供します。

以下の例は、注文が完了した場合のレスポンスです。合計金額、ユーザーの注文内容、予想所要時間が伝えられます。

関連項目

ショートカット

ショートカットのドネート(donate、提供)

ユーザーがAppで実行したアクションを行うショートカットを、Siriにドネートします。

ドネートしたショートカットの削除

ドネートした情報をSiriから削除します。

Soup Chef:ショートカットによる迅速なApp操作(英語)

Appのアクションを実行するショートカットを提供することによって、ユーザーがSiriでAppを簡単に使えるようにします。

ショートカットの管理(英語)

ユーザーがSiriにショートカットを追加できるようにします。また、Appからユーザーにショートカットを提案します。

関連するショートカット(英語)

Apple WatchのSiriの文字盤にショートカットを表示します。

enum INShortcut(英語)

システムがユーザーに提案したり、ユーザーがSiriに追加したりできる、Appで利用可能なアクションです。

class INObject(英語)

カスタムのIntentパラメータを表すオブジェクト。