アプリ内メッセージ作成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個)
6: ポップアップ(ボタン1個)背景狭
7: ポップアップ(ボタン2個)背景狭
8: ポップアップ(ボタン2個縦並び)背景狭
9: ポップアップ(ボタン2個縦並び)
10: フルスクリーン(ボタン2個縦並び)
-
title 文字列 - - 40文字以下 メッセージタイトル - -
body 文字列 - - 200文字以下 メッセージ本文 - -
image_url 文字列(URI) - - 1文字以上2083文字以下 画像URL - -
buttons オブジェクト o - - buttonsオブジェクト参照 1つ or 2つ指定可能 -

triggerオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
event_name 文字配列 o - - イベント名 アプリ内メッセージを表示するトリガーとなるイベント名 最大10個
正規表現で ^([0-9a-zA-Z-_.]){1,100}$
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-.]([0-9a-zA-Z-_.]){,99}$

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

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

バリデーション詳細

  • message.template_id が 4, 5, 10 以外の場合
    • message.title or message.body が指定されている場合、image_url は指定不可。
    • message.image_url が指定されている場合、message.title と message.body はそれぞれ指定不可。
    • message.title が指定されている場合、message.body は入力必須。
    • message.body が指定されている場合、message.title は入力必須。
    • message.image_url, message.title, message.body 全てを省略することはできない。
  • message.template_id が 1, 6 の場合
    • message.buttons オブジェクトリストの長さは1でなければならない。
    • message.buttons[0].id は1でなければならない。
  • message.template_id が 2, 7, 8, 9 の場合
    • message.buttons オブジェクトリストの長さは2でなければならない。
    • 同リストの中に、buttons[i].id が1であるものと、buttons[j].id が2であるものが存在する。
    • 同リストの中に重複する id が含まれてはいけない。
  • message.template_id が 3 の場合
    • message.buttons オブジェクトリストの長さは1でなければならない。
    • message.buttons[0].id は1でなければならない。
    • message.image_url は入力必須である。
    • message.buttons[0].name は固定値(-)でなければならない。
  • message.template_id が 4 の場合
    • message.buttons オブジェクトリストの長さは1でなければならない。
    • message.buttons[0].id は1でなければならない。
    • message.image_url, message.title, message.body は入力必須である。
  • message.template_id が 5, 10 の場合
    • message.buttons オブジェクトリストの長さは2でなければならない。
    • 同リストの中に、buttons[i].id が1であるものと、buttons[j].id が2であるものが存在する。
    • 同リストの中に重複する 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 ヘッダを返却

レスポンスのサンプル

なし