Flex Messageの要素
Flex Messageは、3層の階層構造で構成されています。最上位層のコンテナ、そしてブロック(ヘッダー、ヒーロー、ボディ、フッター)、コンポーネントの順で続きます。ここでは、Flex Messageを構成する要素について例を挙げて説明します。

コンテナ
コンテナは、Flex Messageの最上位の構造です。以下のタイプのコンテナを利用できます。
| タイプ | 説明 |
|---|---|
| バブル | 単体のメッセージバブルを表示するコンテナ |
| カルーセル | 複数のメッセージバブルを横に並べて表示するコンテナ |
バブル
バブルは、1つのメッセージバブルを構成するコンテナです。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「バブル」を参照してください。

カルーセル
カルーセルは、1つ以上のバブルを要素に持つコンテナです。カルーセル内のバブルは、横にスクロールして閲覧できます。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「カルーセル」を参照してください。
ブロック
ブロックは、バブルを構成する構造です。以下のタイプのブロックを利用できます。
| タイプ | 説明 |
|---|---|
| ヘッダー | メッセージの件名や見出しを表示するブロック |
| ヒーロー | 画像などの主要なコンテンツを表示するブロック |
| ボディ | 主要なメッセージコンテンツを表示するブロック |
| フッター | ボタンや補足情報を表示するブロック |
ヘッダー、ヒーロー、ボディ、フッターは、この順番でバブルの上から表示されます。1つのバブルに対して、すべてのブロックを使用する必要はありません。どのブロックもバブル内で1つだけ指定できます。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「バブル」のheaderプロパティ、heroプロパティ、bodyプロパティ、footerプロパティを参照してください。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。
コンポーネント
コンポーネントは、ブロックを構成する要素です。以下のコンポーネントを利用できます。
| コンポーネント | 説明 |
|---|---|
| ボックス | 水平または垂直のレイアウト方向を定義し、他のコンポーネントを含むことができるコンポーネント |
| ボタン | ボタンを描画するコンポーネント。ユーザーがタップすると、指定したアクションが実行されます。 |
| 画像 | 画像を描画するコンポーネント |
| 動画 | 動画を描画するコンポーネント |
| アイコン | アイコンを描画するコンポーネント |
| テキスト | 文字列を描画するコンポーネント。色、サイズ、および太さを指定できます。 |
| スパン | スタイルが異なる複数の文字列を描画するコンポーネント。色、サイズ、太さ、および装飾を指定できます。 |
| セパレータ | 分割線を描画するコンポーネント |
| フィラー(非推奨) | スペースを作るためのコンポーネント |
ボックス
ボックスは、水平または垂直にコンポーネントをレイアウトするためのコンポーネントです。ボックスを含む、他のコンポーネントを含めることができます。レイアウトについて詳しくは、「Flex Messageのレイアウト」を参照してください。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「ボックス」を参照してください。
ボタン
ボタンを描画するコンポーネントです。ユーザーが、ボタンをタップしたときに実行される、アクションを指定できます。以下のように、ボタンには3つのスタイルがあり、それぞれでボタンの色を変更できます。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「ボタン」を参照してください。
画像
画像を描画するコンポーネントです。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「画像」を参照してください。
動画
動画を描画するコンポーネントです。動画の使い方について詳しくは、「動画を含むFlex Messageを作成する」を参照してください。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「動画」を参照してください。
アイコン
隣接するテキストを装飾するために、アイコンを描画するコンポーネントです。このコンポーネントは、ベースラインボックス内でのみ使用できます。
![]()
上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「アイコン」を参照してください。
テキスト
文字列を描画するコンポーネントです。色、サイズ、および太さを指定できます。長いテキストを折り返したり、折り返したテキストの行間を調整したりできます。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「テキスト」を参照してください。
テキストを折り返す
デフォルトでは、テキストの幅を超える部分は省略記号に置き換えられます。以下は、長いテキストが省略される場合の例です。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。
テキストを折り返して表示することで、テキストの省略を避けることができます。テキストを折り返して表示するには、wrapプロパティにtrueを指定します。また、改行文字(\n)を使って改行できます。以下は、テキストの折り返しと改行を使用したFlex Messageの例です。

テキストの最後に改行文字(\n)を入力した場合の描画結果は、環境によって異なる可能性があります。
上のFlex Messageを表現するには以下のようなJSONデータを指定します。wrapプロパティにtrueを設定しています。
テキスト内の行間を広げる
折り返したテキストの行間は、lineSpacingプロパティで指定できます。
lineSpacingプロパティは、テキスト内の行間にのみ適用されます。そのため、開始行の上部と最終行の下部には適用されません。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。lineSpacingプロパティに20pxを設定しています。
スパン
スタイルが異なる複数の文字列を描画するコンポーネントです。色、サイズ、太さ、および装飾を指定できます。スパンは、テキストのcontentsプロパティに設定します。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「スパン」を参照してください。
セパレータ
ボックス内に分割線を描画するコンポーネントです。水平ボックスに含めた場合は垂直線、垂直ボックスに含めた場合は水平線が描画されます。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「セパレータ」を参照してください。
フィラー
スペースを作るには、フィラーの代わりに各コンポーネントのプロパティを使用してください。詳しくは、「コンポーネントの位置」を参照してください。
スペースを作るためのコンポーネントです。ボックス内のコンポーネントの間、前、または後にスペースを入れることができます。以下の例では、画像の間にフィラーを挿入しています。

上のFlex Messageを表現するには以下のようなJSONデータを指定します。JSONスキーマについて詳しくは、『Messaging APIリファレンス』の「フィラー」を参照してください。
関連ページ
- Flex Messageを送信する
- Flex Messageのレイアウト
- Flex Message(Messaging APIリファレンス)