LINE Messaging APIのテンプレートメッセージをまとめてみる(アクションオブジェクト編)

2018.04.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、中村です。
前回に引き続きLINE Messaging APIの話です。

ちなみに前回はこちら↓

LINE Messaging APIのテンプレートメッセージをまとめてみる

今回は、アクションオブジェクトをまとめます。
アクションオブジェクトには、ユーザーがメッセージ内のボタンや画像をタップした時に実行できるアクションを設定できます。

メッセージアクション

アクションが設定されたコントロールがタップされると、textプロパティの文字列がユーザーから送信されます。

プロパティ タイプ 必須 説明
type string 必須 message
label string 要説明参照 アクションのラベル

  • 画像カルーセル以外は必須。(最大文字数:20)
  • 画像カルーセルでは省略可能。(最大文字数:12)
  • リッチメニューでは省略可能。デバイスのアクセシビリティ機能が有効な場合に読み上げられる。(最大文字数:20)
  • LINE iOSのバージョン8.2.0以降でサポートされます。

text string 必須 アクション実行時に送信されるテキスト。(最大文字数:300)

実際の表示

JSONサンプル

{  
   "type":"message",
   "label":"Yes",
   "text":"Yes"
}

URIアクション

アクションが設定されたコントロールがタップされると、uriプロパティのURIが開きます。

プロパティ タイプ 必須 説明
type string 必須 uri
label string 要説明参照 アクションのラベル

  • 画像カルーセル以外は必須。(最大文字数:20)
  • 画像カルーセルでは省略可能。(最大文字数:12)
  • リッチメニューでは省略可能。デバイスのアクセシビリティ機能が有効な場合に読み上げられます。(最大文字数:20)
  • LINE iOSのバージョン8.2.0以降でサポートされます。

uri string 必須 アクションの実行時に開かれるURI

  • http・https・telで始める必要あり。(最大文字数:1000)

実際の表示

JSONサンプル

{  
   "type":"uri",
   "label":"Webを見る",
   "uri":"https://classmethod.jp/"
}

ポストバックアクション

アクションが設定されたコントロールがタップされると、dataプロパティに指定された文字列を含むポストバックイベントが、webhookを介して返されます。

プロパティ タイプ 必須 説明
type string 必須 postback
label string 要説明参照 アクションのラベル

  • 画像カルーセル以外は必須。(最大文字数:20)
  • 画像カルーセルでは省略可能。(最大文字数:12)
  • リッチメニューでは省略可能。デバイスのアクセシビリティ機能が有効な場合に読み上げられます。(最大文字数:20)
  • LINE iOSのバージョン8.2.0以降でサポートされます。

data string 必須 Webhookを介して、ポストバックイベントのpostback.dataプロパティで返される文字列。(最大文字数:300)
displayText string 任意 アクションの実行時に、ユーザーのメッセージとしてLINEアプリのトーク画面に表示されるテキスト。displayTextフィールドとtextフィールドは、同時に設定できません。(最大文字数:300)
text string 任意 非推奨。アクションの実行時に、ユーザーのメッセージとしてLINEアプリのトーク画面に表示されるテキスト。Webhookを介してサーバーに返されます。displayTextフィールドとtextフィールドは、同時に設定できません。(最大文字数:300)

実際の表示

JSONサンプル

{  
   "type":"postback",
   "label":"store",
   "data":"action=store&storeId=000000",
   "displayText":"000000"
}

日時選択アクション

アクションが設定されたコントロールがタップされると、日時選択ダイアログでユーザーが選択した日時を含むポストバックイベントが、webhookを介して返されます。
日時選択アクションはタイムゾーンの違いに対応していません。

iOS版LINE 7.9.0およびAndroid版LINE 7.12.0以降で利用できます。

プロパティ タイプ 必須 説明
type string 必須 datetimepicker
label string 要説明参照 アクションのラベル

  • 画像カルーセル以外は必須。(最大文字数:20)
  • 画像カルーセルでは省略可能。(最大文字数:12)
  • リッチメニューでは省略可能。デバイスのアクセシビリティ機能が有効な場合に読み上げられます。(最大文字数:20)
  • LINE iOSのバージョン8.2.0以降でサポートされます。

data string 必須 Webhookを介して、ポストバックイベントのpostback.dataプロパティで返される文字列。(最大文字数:300)
mode string 必須 アクションモード

  • date:日付を選択
  • time:時刻を選択
  • datetime:日付と日時を選択。
initial string 任意 日付または時刻の初期値
max string 任意 選択可能な日付または時刻の最大値。minの値より大きい必要あり。
min string 任意 選択可能な日付または時刻の最小値。maxの値より小さい必要あり。

実際の表示

JSONサンプル

{  
    "type":"datetimepicker",
    "label":"Select date",
    "data":"action=date",
    "mode":"datetime"
}

日時の形式

RFC3339プロトコルで定義

モード 形式
date full-date

  • 最大値:2100-12-31
  • 最小値:1900-01-01
time time-hour:time-minute

  • 最大値:23:59
  • 最小値:00:00
datetime full-dateTtime-hour:time-minuteまたはfull-dateTtime-hour:time-minute

  • 最大値:2100-12-31T23:59
  • 最小値:1900-01-01T00:00

まとめ

前回に引き続きまとめでしたが、いかがでしょうか。
今後もまとめつつ実際の活用方法も書いていけたらいいと思います。