アプリ内メッセージ作成API

概要

POSTされたデータを使用して、新しくアプリ内メッセージを作成します。

URL

/v1/delivery

メソッド

POST

リクエスト

リクエストパラメータ

なし

リクエストボディ

基底オブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
name 文字列 o - - メッセージ名称 管理用の名称 -
priority 数値 - 0 0以上 優先度 数値が大きいものが優先されて表示されます -
condition オブジェクト o - - conditionオブジェクト参照 - -
message オブジェクト o - - messageオブジェクト参照 - -

conditionオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
trigger オブジェクト o - - triggerオブジェクト参照 - -
target オブジェクト - - - targetオブジェクト参照 - 未指定の場合、全体配信
max_total_count 数値 - - 1以上 最大表示回数 - -
max_total_count_per_day 数値 - - 1以上 1日あたりの最大配信回数 - -
category 文字列 - - 500文字以下 カテゴリ - -

messageオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
template_id 数値 o - - テンプレートID 1: ポップアップ(ボタン1個)
2: ポップアップ(ボタン2個)
3: ポップアップ(画像のみ)
4: フルスクリーン(ボタン1個)
5: フルスクリーン(ボタン2個)
-
title 文字列 - - 40文字以下 メッセージタイトル - -
body 文字列 - - 200文字以下 メッセージ本文 - -
image_url 文字列(URI) - - 1文字以上2083文字以下 画像URL - -
buttons オブジェクト o - - buttonsオブジェクト参照 1つ or 2つ指定可能 -

triggerオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
event_name 文字配列 o - - イベント名 アプリ内メッセージを表示するトリガーとなるイベント名 最大10個
period オブジェクト o - periodオブジェクト参照 - - 最大100個

targetオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
segmentation_id 数値 o - - セグメントID - -

periodオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
start 文字列(datetime) o - - 配信開始日時 現在日時から180日以内の日時を設定可能 -
end 文字列(datetime) o - - 配信終了日時 現在日時から180日以内の日時を設定可能 -

buttonsオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
id 文字列 o - 50文字以下 ボタンID - バリデーション詳細をご参照ください
name 文字列 o - 10文字以下 ボタン名 - -
url 文字列(URI) o - 1文字以上65536文字以下 遷移先URL ※1 -
event_name 文字列 - - - イベント名 ボタンタップ時に計測するトラッキングイベント名 正規表現で ^0-9a-zA-Z-.{,99}$

※1. 以下のフォーマットでの設定が必要です。

  • 閉じる: inappmsg://close
  • 設定画面へ: inappmsg://setting
  • 遷移先指定: inappmsg://action?url=https%3d%3d${URLer}

バリデーション詳細

  • message.template_id が 4, 5 以外の場合
    • message.title or message.body が指定されている場合、image_url は指定不可。
    • message.image_url が指定されている場合、message.title と message.body はそれぞれ指定不可。
    • message.title が指定されている場合、message.body は入力必須。
    • message.body が指定されている場合、message.title は入力必須。
  • message.template_id が 1 の場合
    • リストの長さは1でなければならない。
    • message.button.id は1でなければならない。
  • message.template_id が 2 の場合
    • リストの長さは2でなければならない。
    • リストの中に、button.id が1であるものと、button.id が2であるものが存在する。
    • message.buttons について、リストの中に同じidが含まれてはいけない。
  • message.template_id が 3 の場合
    • リストの長さは1でなければならない。
    • message.button.id は1でなければならない。
    • message.image_url は入力必須である。
    • message.buttons[0].name は固定値(-)でなければならない。
  • message.template_id が 4 の場合
    • リストの長さは1でなければならない。
    • message.button.id は1でなければならない。
    • message.image_url, message.title, message.body は入力必須である。
  • message.template_id が 5 の場合
    • リストの長さは2でなければならない。
    • リストの中に、button.id が1であるものと、button.id が2であるものが存在する。
    • message.buttons について、リストの中に同じidが含まれてはいけない。
    • message.image_url, message.title, message.body は入力必須である。

リクエストボディサンプル

※複合バリデーション制約のため、以下のサンプルをそのまま使用した場合はエラーとなります。

curl -X POST -H 'X-POPINFO-MAPI-TOKEN: {auth_token}' https://{domain}/v1/delivery
-d '{
    "name": "string",
    "priority": 0,
    "condition": {
        "trigger": {
            "event_name": [
                "string"
            ],
            "period": [
                {
                    "start": "2019-01-01T12:12:12+09:00",
                    "end": "2019-01-01T12:12:12+09:00"
                }
            ]
        },
        "target": {
            "segmentation_id": 0
        },
        "max_total_count": 1,
        "max_total_count_per_day": 1,
        "category": "string"
    },
    "message": [
        {
            "template_id": "1",
            "title": "string",
            "body": "string",
            "image_url": "http://example.com",
            "buttons": [
                {
                    "id": "string",
                    "name": "string",
                    "url": "http://example.com",
                    "event_name": "string"
                }
            ]
        }
    ]
}'

レスポンス

メディアタイプ

application/json

成功時レスポンス

http status 201 を返却し、作成したリソースを指し示す Location ヘッダを返却

レスポンスのサンプル

なし