メインコンテンツへスキップ

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()StringOneSignal通知UUID。
getAdditionalData()JSONObjectダッシュボードまたはREST API経由で設定されたカスタムキーバリューデータ。最大2048バイト。
getTemplateId()Stringテンプレートを使用して送信された場合のテンプレートUUID。
getAndroidNotificationId()intAndroidネイティブ通知ID。
getLargeIcon()String大きいアイコンのURLまたはリソース名。
getSmallIcon()String小さいアイコンのリソース名。
getSmallIconAccentColor()StringARGB形式のアイコンアクセントカラー。
getSound()String再生されるサウンドリソース名。
getCollapseId()String通知置き換え用のコラプスキー。
getPriority()intAndroidの優先度(-2から2)。
getLedColor()StringARGB形式のLEDカラー。
getLockScreenVisibility()intロック画面の表示設定:1 = public0 = private-1 = secret
getFromProjectNumber()String送信者のプロジェクト番号。
getGroupedNotifications()List<OSNotification>サマリーに含まれる通知。
getGroupKey()Stringサマリーで使用されるグループキー。
getGroupMessage()Stringサマリーテキスト。
getBackgroundImageLayout()BackgroundImageLayout背景画像のレイアウトとテキストカラーのオブジェクト。
getActionButtons()List<ActionButton>アイコン、テキスト、IDを持つアクションボタン。
getRawPayload()Stringペイロードの完全な生JSONストリング。

iOSフィールド

プロパティタイプ説明
bodyNSString通知の本文テキスト。
titleNSString通知のタイトル。
launchURLNSString通知がクリックされたときに開かれるURL。
notificationIdNSStringOneSignal通知UUID。
additionalDataDictionaryダッシュボードまたはREST API経由で設定されたカスタムキーバリューdata。最大2048バイト。
templateIdNSStringテンプレートを使用して送信された場合のテンプレートUUID。
subtitleNSStringサブタイトルテキスト。
categoryNSStringiOSカテゴリ識別子。
threadIdNSString通知をスレッドにグループ化するために使用されます(iOS 10+)。
badgeNSInteger絶対バッジ値。
badgeIncrementNSIntegerバッジを増やす量。
contentAvailableBOOLcontent-available=1の場合、バックグラウンドフェッチをトリガーします。
mutableContentBOOLmutable-content=1の場合、Notification Service Extensionをトリガーします。
actionButtonsNSArrayiOSアクションボタン。
rawPayloadNSDictionaryペイロードの完全な生JSON。
parseWithApnsMethod生のAPNSペイロードをOSNotificationに変換します。Service Extensionで使用します。

OSNotificationAction(クリックイベント)

ユーザーの通知に対するインタラクションを記述します。
プロパティタイプ説明
actionIdStringクリックされたアクションボタンのID。
typeenumOpened(デフォルトタップ)またはActionTaken(ボタンタップ)。

カスタムOneSignalペイロード構造

すべてのOneSignal通知には、ペイロード内に特別な"custom"オブジェクトが含まれています:
{
  "custom": {
    "i": "the-notification-id"
  }
}
このキーは、OneSignal SDKが通知を処理するために必要です。欠落している場合、通知はクリックイベントや分析をトリガーしません。すでにOneSignalを使用しているデバイスに別のサービスからプッシュを送信する場合は、通知が重複しないようにしてください。

オプション:additionalDataをAPNSルートに移動する

iOSアプリの場合、カスタムハンドラーでより簡単にアクセスできるように、APNSペイロードのルートでadditionalDataを利用可能にできます。
  1. アプリ設定で有効にする Update an app APIを使用して、次のように設定します:
{
  "additional_data_is_root_payload": true
}
  1. dataを使用してプッシュを送信する APNSペイロードのルートで利用可能になります。例:
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
これで、カスタムディクショナリをチェックせずにpromo_codeに直接アクセスできます。

復元された通知

通知は、再起動またはアプリの再起動後にAndroid SDKによって復元されます。
プロパティタイプ説明
restoringbooleanデバイス/アプリの再起動後に通知が復元された場合はtrue
復元された通知は、restoringフラグを使用してスキップできます。古いコンテンツの復元を避けるために、通知に短いまたは0のTTL(time-to-live)を設定してください。

関連トピック