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

概要

POSTされたデータを使用して、新しくアプリ内メッセージ(テスト)を作成します。
テスト配信の有効期限は自動的に10分間に設定されます。

URL

/v1/delivery/_test

メソッド

POST

リクエスト

リクエストパラメータ

なし

リクエストボディ

基底オブジェクト

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

conditionオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
trigger オブジェクト o - - triggerオブジェクト参照 - -
target オブジェクト o - - targetオブジェクト参照 - -
category 文字列 - - 500文字以下 カテゴリ - -

triggerオブジェクト

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

targetオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
popinfo_id オブジェクト o - - popinfo_idオブジェクト参照 - -

popinfo_idオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
android 文字配列(uuid) - - - popinfoID(Android) - 最大1000個
iphone 文字配列(uuid) - - - popinfoID(iPhone) - 最大1000個

messageオブジェクト

キー 必須 デフォルト 許容値 説明 詳細 備考
template_id 数値 o - - テンプレートID アプリ内メッセージテンプレートをご参照ください -
title 文字列 - - 40文字以下 メッセージタイトル バリデーション詳細をご参照ください -
body 文字列 - - 200文字以下 メッセージ本文 バリデーション詳細をご参照ください -
image_url 文字列(URI) - - 1文字以上2083文字以下 画像URL バリデーション詳細をご参照ください -
buttons オブジェクト o - - buttonsオブジェクト参照 1つ or 2つ指定可能 -

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}

バリデーション詳細

  • テンプレートに応じてメッセージの指定項目に制限があります
  • 制限が適用されるテンプレートIDは後述の各テンプレート毎の条件を参照してください

制限

  1. テキスト / 画像の指定可能パターン(⚪︎:指定可能、×:指定不可)

    message.title message.body message.image_url
    ⚪︎ ⚪︎ ×
    × ⚪︎ ⚪︎
    × × ⚪︎
  2. ボタン1個の場合

    • message.buttons オブジェクトリストの長さは1でなければならない。
    • message.buttons[0].id は1でなければならない。
  3. ボタン2個の場合

    • message.buttons オブジェクトリストの長さは2でなければならない。
    • 同リストの中に、buttons[i].id が1であるものと、buttons[j].id が2であるものが存在する。
  4. フルスクリーンの場合

    • message.title, message.body, message.image_url は入力必須である。

各テンプレート毎の条件

  • message.template_id が 1, 6の場合
    • 制限1が適用
    • 制限2が適用
  • message.template_id が 2, 7, 8, 9の場合
    • 制限1が適用
    • 制限3が適用
  • message.template_id が 3の場合
    • 制限2が適用
    • message.image_url は入力必須である。
    • message.buttons[0].name は固定値(-)でなければならない。
  • message.template_id が 4の場合
    • 制限2が適用
    • 制限4が適用
  • message.template_id が 5, 10の場合
    • 制限3が適用
    • 制限4が適用

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

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

curl -X POST -H 'X-POPINFO-MAPI-TOKEN: {auth_token}' https://{domain}/v1/delivery/_test \
-d '{
    "name": "string",
    "priority": 0,
    "condition": {
        "target": {
            "popinfo_id": {
                "android": [
                    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
                ],
                "iphone": [
                    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
                ]
            }
        },
        "trigger": {
            "event_name": [
                "string"
            ]
        },
        "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 ヘッダを返却

レスポンスのサンプル

なし