OSNotification ペイロードリファレンス
このページでは、OSNotificationクラスを介したOneSignalプッシュ通知ペイロードの構造とフィールドについて説明します。モバイルアプリで通知を受信または処理する際に、このリファレンスを使用してください。
プッシュ通知ペイロードは4096バイトに制限されています。切り捨てを避けるために、ペイロードを3500バイト未満に保ってください。additionalDataフィールドは2048バイトに制限されています。
アプリでOSNotificationにアクセスする
すべてのOneSignal SDKは、OSNotificationオブジェクトを返す通知イベントリスナーをトリガーします。
- Android:
OneSignal.setNotificationWillShowInForegroundHandler(...)
- iOS:
notificationReceivedBlockまたはUNNotificationServiceExtension
このオブジェクトを使用して、通知のタイトル、本文、データ、およびその他のプロパティにアクセスします。
OSNotificationクラスは、SDK通知イベントリスナー内でアクセス可能なすべての通知ペイロードデータを提供します。元のOSNotificationおよびOSNotificationPayloadクラスを、単一のゲッターベースのインターフェイスに統合します。
Androidフィールド
| プロパティ | タイプ | 説明 |
getBody() | String | 通知の本文テキスト。 |
getTitle() | String | 通知のタイトル。 |
getLaunchURL() | String | 通知がクリックされたときに開かれるURL。 |
getNotificationId() | String | OneSignal通知UUID。 |
getAdditionalData() | JSONObject | ダッシュボードまたはREST API経由で設定されたカスタムキーバリューデータ。最大2048バイト。 |
getTemplateId() | String | テンプレートを使用して送信された場合のテンプレートUUID。 |
getAndroidNotificationId() | int | Androidネイティブ通知ID。 |
getLargeIcon() | String | 大きいアイコンのURLまたはリソース名。 |
getSmallIcon() | String | 小さいアイコンのリソース名。 |
getSmallIconAccentColor() | String | ARGB形式のアイコンアクセントカラー。 |
getSound() | String | 再生されるサウンドリソース名。 |
getCollapseId() | String | 通知置き換え用のコラプスキー。 |
getPriority() | int | Androidの優先度(-2から2)。 |
getLedColor() | String | ARGB形式のLEDカラー。 |
getLockScreenVisibility() | int | ロック画面の表示設定:1 = public、0 = private、-1 = secret。 |
getFromProjectNumber() | String | 送信者のプロジェクト番号。 |
getGroupedNotifications() | List<OSNotification> | サマリーに含まれる通知。 |
getGroupKey() | String | サマリーで使用されるグループキー。 |
getGroupMessage() | String | サマリーテキスト。 |
getBackgroundImageLayout() | BackgroundImageLayout | 背景画像のレイアウトとテキストカラーのオブジェクト。 |
getActionButtons() | List<ActionButton> | アイコン、テキスト、IDを持つアクションボタン。 |
getRawPayload() | String | ペイロードの完全な生JSONストリング。 |
iOSフィールド
| プロパティ | タイプ | 説明 |
body | NSString | 通知の本文テキスト。 |
title | NSString | 通知のタイトル。 |
launchURL | NSString | 通知がクリックされたときに開かれるURL。 |
notificationId | NSString | OneSignal通知UUID。 |
additionalData | Dictionary | ダッシュボードまたはREST API経由で設定されたカスタムキーバリューdata。最大2048バイト。 |
templateId | NSString | テンプレートを使用して送信された場合のテンプレートUUID。 |
subtitle | NSString | サブタイトルテキスト。 |
category | NSString | iOSカテゴリ識別子。 |
threadId | NSString | 通知をスレッドにグループ化するために使用されます(iOS 10+)。 |
badge | NSInteger | 絶対バッジ値。 |
badgeIncrement | NSInteger | バッジを増やす量。 |
contentAvailable | BOOL | content-available=1の場合、バックグラウンドフェッチをトリガーします。 |
mutableContent | BOOL | mutable-content=1の場合、Notification Service Extensionをトリガーします。 |
actionButtons | NSArray | iOSアクションボタン。 |
rawPayload | NSDictionary | ペイロードの完全な生JSON。 |
parseWithApns | Method | 生のAPNSペイロードをOSNotificationに変換します。Service Extensionで使用します。 |
OSNotificationAction(クリックイベント)
ユーザーの通知に対するインタラクションを記述します。
| プロパティ | タイプ | 説明 |
actionId | String | クリックされたアクションボタンのID。 |
type | enum | Opened(デフォルトタップ)またはActionTaken(ボタンタップ)。 |
カスタムOneSignalペイロード構造
すべてのOneSignal通知には、ペイロード内に特別な"custom"オブジェクトが含まれています:
{
"custom": {
"i": "the-notification-id"
}
}
このキーは、OneSignal SDKが通知を処理するために必要です。欠落している場合、通知はクリックイベントや分析をトリガーしません。すでにOneSignalを使用しているデバイスに別のサービスからプッシュを送信する場合は、通知が重複しないようにしてください。
オプション:additionalDataをAPNSルートに移動する
iOSアプリの場合、カスタムハンドラーでより簡単にアクセスできるように、APNSペイロードのルートでadditionalDataを利用可能にできます。
- アプリ設定で有効にする
Update an app APIを使用して、次のように設定します:
{
"additional_data_is_root_payload": true
}
dataを使用してプッシュを送信する
APNSペイロードのルートで利用可能になります。例:
{
"aps": {
"alert": { "title": "Sale", "body": "20% off all items!" }
},
"promo_code": "SPRING20"
}
これで、カスタムディクショナリをチェックせずにpromo_codeに直接アクセスできます。
復元された通知
通知は、再起動またはアプリの再起動後にAndroid SDKによって復元されます。
| プロパティ | タイプ | 説明 |
restoring | boolean | デバイス/アプリの再起動後に通知が復元された場合はtrue。 |
復元された通知は、restoringフラグを使用してスキップできます。古いコンテンツの復元を避けるために、通知に短いまたは0のTTL(time-to-live)を設定してください。
関連トピック