モーダル内のBlock Kit

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

モーダルを使用すると、ユーザーから構造化された方法で情報を収集する、リッチでインタラクティブかつ動的なビューを作成できます。 これは、Open/update or push modal viewアクションを使用して行います。 Block Kitモーダルの例Block Kitモーダルの例

モーダルビューはブロックを使用して構築されます。 モーダルビューには、タイトル、ビュー(ブロックで構成)、および送信/閉じるボタンがあります。 入力ブロックと呼ばれるモーダル専用ブロックも使用できます。 これには次のものがあります。

  • 単一行入力
  • 複数行入力
  • 選択メニュー入力
  • 日付ピッカー入力
  • チェックボックス入力

インタラクティブコンポーネントと入力ブロックの比較

入力ブロックは、他のブロックのインタラクティブコンポーネントとは異なる動作をします。

ボタン、メニュー、およびその他のインタラクティブコンポーネントは、クリックされたときにコマンドを呼び出します。 これに対し、入力ブロックはビューが送信されたときにのみコマンドを呼び出します。 たとえば、モーダルでは、ユーザーは承認または却下を選択できます。 ユーザーがSubmitボタンをクリックしてモーダルを送信した後にのみ、値が確定します。

選択入力の例 _ユーザーの選択は、_送信__をクリックした後にのみ確定します

ビューに入力ブロックが含まれる場合、送信ボタンと閉じるボタンを定義することが必須です。 入力ブロックが含まれない場合、送信ボタンと閉じるボタンを含める必要はありません。

モーダルは、ビュースタック内に最大3つのビューを同時に保持できます。 ユーザーに表示されるのは最上位のビューのみで、これはアクティブビューと呼ばれます。 ビュースタックは、ユーザーがアクティブビューを送信または閉じた後に以前のビューへ戻れるようにするため便利です。

3つのビューを持つモーダルスタック各モーダルは最大3つのビューをスタックできます

モーダルを開くと、ルートビューで開きます。 モーダルを更新すると、指定した既存のビュー(そのビューIDを使用)が置き換えられます。一方、モーダルビューをプッシュすると、ビュースタックの最上位に新しいビューが適用されます。

各ビューには関連付けられたビューIDがあります。 既存のビューを更新するには、このビューIDが必要です。

ビュー間での情報の受け渡し

ユーザーがインタラクティブコンポーネントを操作するかモーダルを送信すると、ボットコマンドがダウンストリームレシピをトリガーします。 このダウンストリームレシピは、モーダルビューを更新またはプッシュできます。 ダウンストリームレシピ内のモーダルアクションに必要なコンテキストを確実に提供するには、ユーザーID商談IDなどのパラメーターを渡します。

モーダルでは、これらの値はコマンド入力値と呼ばれます。 これにより、レシピのある部分から別の部分へ特定のデータを渡せます。 たとえば、ユーザーがモーダルでアカウントを選択し、account_idコマンド入力値として定義した場合、それを後続のアクションに渡して、そのアカウントに関する情報を更新または取得できます。 これにより、ユーザー入力に基づく動的なピックリストの生成など、動的でインタラクティブなワークフローが可能になります。

これらのパラメーターを渡すには、ダウンストリームレシピのNew commandトリガーで定義する必要があります。 パラメーター名とデータ型が、アップストリーム側の対応するものと一致していることを確認することが重要です。 たとえば、モーダルのビュー(アップストリームレシピでレンダリング)でopportunity_idを単一行入力として使用する場合、ダウンストリームレシピのNew commandでもopportunity_idを文字列パラメーターとして指定する必要があります。

JSONを使用してパラメーターを渡すことができます。たとえば、{"opportunity_id": "OPP1234567"}または{"OpportunityId": "OPP1234567"}です。 コマンド入力値では、JSON配列およびオブジェクトをパラメーターとして渡すこともサポートされています。

たとえば、ユーザーIDの配列を渡すことができます。

JSON
{
  "user_ids": ["USER123", "USER456", "USER789"]
}

商談を説明するキー値ペアを含むオブジェクトを渡すこともできます。

JSON
{
  "opportunity": {
    "id": "OPP1234567",
    "name": "New business opportunity",
    "amount": 50000,
    "status": "Open"
  }
}

文字制限

モーダルでは、コマンド入力値としてCamelCase文字やカンマ区切りの名前と値のペアはサポートされません。 ただし、JSONではCamelCaseがサポートされます。たとえば、{"OpportunityId": "OPP1234567"}です。

モーダルの操作

次のコンポーネントを使用してモーダルを開くことができます。

  • ボタン
  • メニュー
  • オーバーフロー
  • 選択メニュー
  • 日付ピッカー
  • ラジオボタン
  • ショートカット
  • メッセージアクション
  • スラッシュコマンド
  • モーダルビューの送信

前述のコンポーネントはボットコマンドを呼び出し、トリガーIDを生成します。これはNew commandトリガーによって取得されます。 トリガーIDは、すべての種類のモーダルで必須です。 モーダルビューを開く、更新する、プッシュする操作には、すべてこのトリガーIDが必要です。

New commandトリガーのデータツリーには、モーダル関連のコンテキストを保存するModalsオブジェクトが含まれており、これによりモーダルアクションを実行できます。

モーダルデータピル説明
View IDコマンドが呼び出されたビューのView ID、別名 アクティブビュー。 コマンドがビュー送信から呼び出された場合、このView IDはビューの更新/プッシュには使用できません。送信時にビューがすでに閉じているためです。 アクティブなビューが1つだけの場合、このView IDはルートビューIDと同じになります。
Root View IDルートビューのView ID。
Previous View ID現在のビューの下にあるビューのView ID
Private metadata必要に応じて下流のレシピに渡すために使用できるプライベートデータ。 このフィールドは暗号化され、ユーザーには表示されません。
Hashモーダルの更新時に必要に応じて使用できる一意の値。 指定するとハッシュが検証され、最新のビューのみが更新されます。これにより、更新が非同期に行われる場合に正しいビューが更新されることが保証されます。

Open/update or push modal viewアクション

このアクションを使用すると、ユーザーから構造化された方法で情報を収集する、リッチでインタラクティブかつ動的なモーダルを作成できます。 モーダルはブロックを使用して構築されます。

モーダルの例Open/update or push modal viewアクション

Modal action typeopenupdate、またはpushに設定することで、新しいモーダルビューを開く、既存のビューを更新する、または既存のビューの上に新しいビューをプッシュできます。 Open/update or push modal view

すべてのモーダルアクションタイプで、トリガーIDが必要です。 Slackは、ユーザーが次のコンポーネントを操作したときにトリガーIDを生成します。

  • ボタン
  • メニュー
  • オーバーフロー
  • 選択メニュー
  • 日付ピッカー
  • ラジオボタン
  • ショートカット
  • メッセージアクション
  • スラッシュコマンド
  • モーダルビューの送信

モーダルビューを開くには、New commandトリガーの出力からトリガーIDStep 1データピルをマッピングします。 トリガーIDモーダルビューを開くためのトリガーID(New commandトリガー内にあります)

モーダルビューの更新にもトリガーIDが必要ですが、更新するビューのビューIDも指定する必要があります。 このビューIDは、New commandトリガーのデータツリーのModals配下にもあります。 モーダルビューを更新するためのトリガーIDとView IDモーダルビューを更新するためのトリガーIDとView ID(どちらもNew commandトリガー内にあります)

モーダルビューを(既存のビューの上に)プッシュするには、トリガーIDが必要です。 ただし、このトリガーIDは既存のビューから生成されている必要があります。 モーダルビューをプッシュするためのトリガーIDモーダルビューをプッシュするためのトリガーID(New commandトリガー内にあります)

モーダルビューを更新するタイミング

通常、ボットコマンドはビューIDを使用して、それらが存在するアクティブビューを更新します。 モーダルを更新アクティブビューでの変更

これに対し、モーダル送信では通常、ルートビュー(ルートビューID)または前のビュー(前のビューID)を更新します。 これらのビューは、New commandトリガーのデータツリー内のModalsにあります。

New commandトリガーのデータツリー内のModalsオブジェクトNew commandトリガー内にあるRoot View IDとPrevious View ID

ビューの送信

ビューが送信されると、デフォルトで閉じます。 ビュー送信への応答としてビューを更新する場合は、正しいビューIDを使用してください。

モーダルビューをプッシュするタイミング

通常、ボットコマンドはビューIDを使用して、それらが存在するアクティブビューの上にビューをプッシュします。 ビューIDは、New commandトリガーのデータツリー内のModalsにあります。

モーダルをプッシュアクティブビューでの変更

New commandトリガーのデータツリー内のModalsオブジェクトNew commandトリガー内にあるRoot View IDとPrevious View ID

ビューの送信

ビューが送信されると、デフォルトで閉じます。 モーダルビューは、必ずアクティブビューの上にのみプッシュしてください。

Open/update or push modal viewアクション入力

次の表では、このアクションを使用する場合の設定について説明します。

入力説明
トリガーID(必須) モーダルビューを開けるのは、インタラクティブコンポーネント(ボタンやメニューなど)、モーダル送信、メッセージアクション、ショートカット、およびスラッシュコマンドのみです。 ユーザーがこれらの機能を操作または使用すると、トリガーIDが生成されます。 これらは、New commandトリガーのデータツリーのModalsオブジェクト配下から取得できます。
モーダルアクションタイプ(必須)Modal action typeをそれぞれopenupdate、またはpushに設定することで、新しいモーダルビューを開く、既存のビューを更新する、または既存のビューの上に新しいビューをプッシュできます。 これは、Custom valueに切り替えることで動的に設定できます。 アクションでView IDが不要な場合(たとえば、モーダルビューを開くまたはプッシュする場合)、View IDは無視されます。
View ID(任意) 既存のモーダルを更新するには、更新するビューのビューIDを指定します。 このフィールドは、モーダルビューを開くまたはプッシュする場合には無視されます。
表示モーダルのタイトルモーダルビューのタイトル。 最大24文字のみ。
ブロック積み重ねたり並べ替えたりできるブロックの配列。
ビューを送信送信コマンドユーザーがモーダル送信を行ったときに呼び出すコマンド。
コマンド入力値 ユーザーがモーダルを送信するとき、ダウンストリームレシピにコンテキストを提供するために、ユーザーID商談IDなどのパラメーターを渡す必要がある場合があります。

これらを受け取る準備をするには、モーダルでこれらのパラメーターを定義し、ダウンストリームレシピのNew commandトリガーに渡す必要があります。 モーダルを含むアップストリームレシピと、New commandトリガーを持つダウンストリームレシピの両方で、パラメーター名が一致している必要があります。

アクションはカンマ区切りの名前と値のペアやCamelCaseをサポートしないため、モーダルでパラメーターを渡すにはJSONを使用します。 たとえば、{"opportunity_id": "OPP1234567"}です。 ただし、JSON内ではCamelCaseパラメーターがサポートされます。たとえば、{"OpportunityId": "OPP1234567"}です。 JSONを使用して配列またはオブジェクトを渡すこともできます。

パラメーター名とデータ型が、アップストリーム側の対応するものと一致していることを確認してください。 たとえば、モーダルビュー(アップストリームレシピでレンダリング)でopportunity_idを単一行入力として使用する場合、ダウンストリームレシピのNew commandトリガーでもopportunity_idを文字列パラメーターとして指定します。
送信ボタンのラベル 送信ボタンのラベル。 最大24文字のみ。
閉じるボタンのラベル 閉じるボタンのラベル。 最大24文字のみ。
閉じる時にクリア 閉じるボタンをクリックすると、モーダル内のすべてのビューがクリアされ、モーダルが閉じます。 デフォルトはfalseです。
閉じる時に通知 ユーザーが閉じるボタンをクリックすると、view_closedイベントを送信します。 デフォルトはfalseです。 このイベントをリッスンするには、New eventトリガーを使用します。
詳細設定プライベートメタデータ 上級ユーザー向け。 機密データを渡すために使用します。 このフィールドは暗号化され、ユーザーには非表示になります。 最大長は3000文字。
Callback ID 上級ユーザー向け。 ダウンストリームレシピでビュー送信イベントを参照するために使用します。 最大長は255文字。
ハッシュモーダルの更新時に必要に応じて使用できる一意の値。 指定するとハッシュが検証され、最新のビューのみが更新されます。これにより、更新が非同期に行われる場合に正しいビューが更新されることが保証されます。 このフィールドは、モーダルビューを開くまたはプッシュする場合には無視されます。

Last updated: