LINE Messaging APIのテンプレートメッセージをまとめてみる
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、中村です。
LINEのMessaging APIでは、テキスト以外にもテンプレートメッセージで返答させることができます。
テンプレートメッセージは、LINEで用意したレイアウトです。
ユーザーは手動入力の代わりに、1回タップで特定のアクションを実行できます。
今回は実際の表示とJSONを交えながらまとめたいと思います。
テンプレートメッセージの場合も、テキストと同様でJSONを作成しSDK等で送信します。
iOS版およびAndroid版のLINE 6.7.0以降で対応しています。
共通プロパティ
すべてのテンプレートメッセージオブジェクトで共通のプロパティがあります。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| type | string | 必須 | template |
| altText | string | 必須 | 代替テキスト(最大文字数:400) |
| template | object | 必須 | ボタン、確認、カルーセル、画像カルーセルオブジェクト |
ボタン
複数のアクションボタンが含まれたメッセージを送ることができます。
画像・タイトル・テキストの領域全体に対しても、ユーザーがタップすると実行されるアクションを1つ指定できます。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| type | string | 必須 | buttons |
| thumbnailImageUrl | string | 任意 |
|
| imageAspectRatio | string | 任意 | 画像のアスペクト比。以下のいずれかの値を指定します。
デフォルト値はrectangleです。 |
| imageSize | string | 任意 | 画像の表示形式。以下のいずれかの値を指定します。
デフォルト値はcoverです。 |
| imageBackgroundColor | string | 任意 | 画像の背景色。RGB値で設定する。デフォルト値は#FFFFFF(白)。 |
| title | string | 任意 | タイトル最大文字数:40 |
| text | string | 必須 |
|
| defaultAction | アクションオブジェクト | 任意 | 画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション |
| actions | アクションオブジェクトの配列 | 必須 | タップされたときのアクション最大件数:4 |
送信するJSON
{
"type": "template",
"altText": "this is a buttons template",
"template": {
"type": "buttons",
"actions": [
{
"type": "message",
"label": "アクション 1",
"text": "アクション 1"
},
{
"type": "message",
"label": "アクション 2",
"text": "アクション 2"
},
{
"type": "message",
"label": "アクション 3",
"text": "アクション 3"
}
],
"thumbnailImageUrl": "SPECIFY_YOUR_IMAGE_URL",
"title": "タイトルです",
"text": "テキストです"
}
}
実際の表示

確認
確認テンプレートでは、ボタンが2つ含まれたメッセージを送ることができます。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| type | string | 必須 | confirm |
| text | string | 必須 | メッセージのテキスト(最大文字数:240) |
| actions | アクションオブジェクトの配列 | 必須 | タップされたときのアクション。2つのボタンに1つずつアクションを設定します。 |
送信するJSON
{
"type": "template",
"altText": "this is a confirm template",
"template": {
"type": "confirm",
"actions": [
{
"type": "message",
"label": "はい",
"text": "はい"
},
{
"type": "message",
"label": "いいえ",
"text": "いいえ"
}
],
"text": "テキストです"
}
}
実際の表示

カルーセル
複数のカラムオブジェクトをユーザーがスクロールして閲覧することのできるメッセージタイプ。
ボタンだけでなく画像、タイトル、テキストの領域全体にも、ユーザーがタップすると実行されるアクションを1つ指定できます。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| type | string | 必須 | carousel |
| columns | カラムオブジェクトの配列 | 必須 | カラムの配列。最大カラム数:10 |
| columns | カラムオブジェクトの配列 | 必須 | カラムの配列。最大カラム数:10 |
| imageAspectRatio | string | 任意 | 画像のアスペクト比。以下のいずれかの値を指定します。
デフォルト値はrectangleです。 |
| imageSize | string | 任意 | 画像の表示形式。以下のいずれかの値を指定します。
デフォルト値はcoverです。 |
カルーセルのカラムオブジェクト
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| thumbnailImageUrl | string | 任意 |
|
| imageBackgroundColor | string | 任意 | 画像の背景色。RGB値で設定する。デフォルト値は#FFFFFF(白)。 |
| title | string | 任意 | タイトル最大文字数:40 |
| text | string | 必須 |
|
| defaultAction | アクションオブジェクト | 任意 | 画像、タイトル、テキストの領域全体に対して設定できる、タップされたときのアクション |
| actions | アクションオブジェクトの配列 | 必須 | タップされたときのアクション最大件数:3 |
送信するJSON
{
"type": "template",
"altText": "this is a carousel template",
"template": {
"type": "carousel",
"actions": [],
"columns": [
{
"thumbnailImageUrl": "SPECIFY_YOUR_IMAGE_URL",
"title": "タイトルです",
"text": "テキストです",
"actions": [
{
"type": "message",
"label": "アクション 1",
"text": "アクション 1"
},
{
"type": "message",
"label": "アクション 2",
"text": "アクション 2"
}
]
},
{
"thumbnailImageUrl": "SPECIFY_YOUR_IMAGE_URL",
"title": "タイトルです",
"text": "テキストです",
"actions": [
{
"type": "message",
"label": "アクション 1",
"text": "アクション 1"
},
{
"type": "message",
"label": "アクション 2",
"text": "アクション 2"
}
]
}
]
}
}
実際の表示

画像カルーセル
複数の画像をユーザーがスクロールして閲覧することのできるメッセージタイプ。
カルーセルと同じ機能を使うことができます。
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| type | string | 必須 | image_carousel |
| columns | カラムオブジェクトの配列 | 必須 | カラムの配列、最大カラム数:10 |
画像カルーセルのカラムオブジェクト
| プロパティ | タイプ | 必須 | 説明 |
|---|---|---|---|
| imageUrl | string | 必須 |
|
| actions | アクションオブジェクト | 必須 | 画像がタップされたときのアクション |
送信するJSON
{
"type": "template",
"altText": "this is a image carousel template",
"template": {
"type": "image_carousel",
"columns": [
{
"imageUrl": "https://example.com/test-cline/b01_img01.jpg",
"action": {
"type": "uri",
"label": "View detail",
"uri": "https://classmethod.jp/"
}
},
{
"imageUrl": "https://example.com/test-cline/b01_img02.jpg",
"action": {
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=111"
}
},
{
"imageUrl": "https://example.com/test-cline/b01_img04.jpg",
"action": {
"type": "message",
"label": "Yes",
"text": "yes"
}
}
]
}
}
実際の表示

まとめ
いかがでしたでしょうか。
テキストだけでなく、テンプレートを使用することでよりユーザビリティが向上が期待できます。
次回は、アクションオブジェクトをまとめたいと思います。










