popup_itemsによるプッシュ通知ペイロード指定

概要

popupパラメータではなく、popup_itemsを利用すると、プッシュ通知で送られるペイロードを詳細に指定することが可能です。

popup_itemsはマップ形式で入力します。以下は入力の例になります。

{
    "body": "ポップアップフリーワード",
    "title": "ポップアップタイトル",
    "iphone": {
        "thread-id": "thread-sample",
        "custom_keys": {
            "_ios_custom1": "sample",
            "_ios_custom2": 20
        }
    },
    "android": {
        "custom_keys": {
            "_android_custom1": true
        }
    }
}

ペイロードキーリファレンス

現在、以下のキーを指定することが可能です。

各キーの詳細について

対応するiOS, androidの公式ペイロードキーリファレンスをご参照ください。

非対応のキーについて

各キーは端末のOSのバージョンによっては対応していない場合がございます。対応していない場合、そのパラメータについては無視されます。ご理解の上、ご利用ください。

パラメータ名 必須 対応するiOSペイロードキー 対応するandroidペイロードキー 詳細
body 必須 文字列 aps.alert.loc-key data.message ポップアップフリーワード。256文字以下であること。androidについては、UTF8でbase64encodeされた文字列がセットされる。
title 任意 文字列 aps.alert.title 未対応 ポップアップに表示されるタイトル。30文字以下であること。
iphone 任意 オブジェクト - - 後述のiOSキーリファレンスを参照。
android 任意 オブジェクト - - 後述のandroidキーリファレンスを参照。

iOSキーリファレンス

パラメータ名 必須 対応するiOSペイロードキー 詳細
thread-id 任意 文字列 aps.thread-id ロック画面でプッシュ通知がグルーピングされる際のグループID。
badge 任意 整数 aps.badge アプリの左上に表示されるバッジの数。デフォルトは配信未読数。
sound 任意 文字列 aps.sound プッシュ通知が送られた際の通知音。音声ファイルの格納パスを指定する。
custom_keys 任意 object 右記参照 マップ形式で指定。指定されたキーがペイロード直下に展開される。詳細は下記参照。

soundパラメータについて

こちらは現在、ベータ版です。音声ファイルは、各アプリで用意したものを指定する必要があります。

custom_keys

custom_keysはペイロードにお客様がご自由にキーと値をセットできるものです。
以下のルールに従う必要があります。

  • キー名は_から始まり、半角英数字と-,_のみ利用可。(_[A-Za-z0-9_\-])
  • 値は、文字列、数字、およびbool値のいずれかであること。

androidキーリファレンス

パラメータ名 必須 対応するandroidペイロードキー 詳細
collapse_key 任意 文字列 collapse_key 後述
custom_keys 任意 object 右記参照 マップ形式で指定。指定されたキーがdataキー内に展開される。その他はiOSのcustom_keysと同様

collapse_key

  • 文字列 or nullを設定可能。
  • 文字列の場合、半角英数字と-,_のみ利用可。(^[A-Za-z0-9_\-]$)
  • 指定しない場合、androidペイロードのcollapse_keyには、デフォルト値として、popinfoiridgeがセットされる。
  • nullを設定すると、androidペイロードから、collapse_keyのキーが削除される、もしくはnullがセットされる。
  • プログラムで利用する場合は、「キーなし」、「nullがセットされる」のどちらの場合でも対応できるようお願いします。

その他制約事項

  • popup_itemsは、JSON文字列に変換(UTF-8)した際、2KB以下である必要があります。

サンプル

{
    "body": "ポップアップフリーワード",
    "title": "ポップアップタイトル",
    "iphone": {
        "thread-id": "thread-sample",
        "custom_keys": {
            "_ios_custom1": "sample",
            "_ios_custom2": 20
        }
    },
    "android": {
        "custom_keys": {
            "_android_custom1": true
        }
    }
}

作成されるiOSペイロードの例

{
    "aps": {
        "alert": {
            "loc-key": "ポップアップフリーワード",
            "title": "ポップアップタイトル"
        },
        "thread-id": "thread-sample",
        "sound": "default",
        "mutable-content": 1,  // 固定値
        "badge": 1
    },
    "mid": 12345,  // 配信ID
    "category": "popinfoNotificationCategory",  // 固定値(配信で設定したcategoryの値とは異なるので注意)
    "popinfo_category": "", // 配信で設定したcategoryの値
    "push-provider": "popinfo",  // 固定値
    "icon": "https://example.com/example.png", // 配信でセットしたicon
    "url": "https://example.com/example.html", // 配信でセットしたurl
    "has_detail": true,  // お知らせのみ配信の場合、falseとなる
    "_ios_custom1": "sample",
    "_ios_custom2": 20
}

作成されるandroidペイロード

{
    "data": {
        "id": 12345,  // 配信ID
        "message": "44Od44OD44OX44Ki44OD44OX44OV44Oq44O844Ov44O844OJ", // base64encodeされた文字列
        "icon": "https://example.com/example.png", // 配信でセットしたicon
        "link_url": "https://example.com/example.html", // 配信でセットしたurl
        "has_detail": true,  // お知らせのみ配信の場合、falseとなる
        "push-provider": "popinfo",  // 固定値
        "category": "" // 配信で設定したcategoryの値
    },
    "collapse_key": "popinfoiridge",
    "dry_run": false
}

Warning

上記ペイロードの項目は互換性の対象に含まれません。予告なく変更される可能性がございます。 互換性を保証する項目については、お問い合わせください。