プッシュ通知の配信予約

管理者向けSDKを使うと、プログラムによるプッシュ通知の配信予約を行うことができます。

以下は、プッシュ通知の予約配信を行う例です。

const count = await RKZ.Push.query()
  .send({
      title: '新商品のお知らせ',
      message: 'いつもご利用ありがとうございます。新商品を入荷しました。'
  })
console.log(count)
curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[push_title]="新商品のお知らせ"' \
--form 'contents[push_message]="いつもご利用ありがとうございます。新商品を入荷しました。"'

注意

検索条件が未指定の場合、全ユーザーへ配信されます。

検索条件による絞り込み

プッシュ通知の配信対象となるユーザーは検索条件で絞り込むことができます。キーはユーザーの項目名を指定します。指定可能な条件については検索条件を参照してください。

以下は、検索条件で顧客番号(user_no)を指定して、特定のユーザーに対してプッシュ通知の予約配信を行う例です。

const count = await RKZ.Push.query()
  .equalTo('user_no', 'APP00001')
  .send({
      title: '新商品のお知らせ',
      message: 'いつもご利用ありがとうございます。新商品を入荷しました。'
  })
console.log(count)

 





curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[search_condition][user_no]="APP00001"' \
--form 'contents[push_title]="新商品のお知らせ"' \
--form 'contents[push_message]="いつもご利用ありがとうございます。新商品を入荷しました。"'



 


スケジューリング

先ほどの例では配信予定日時を指定していませんが、その場合はシステム日時で予約されます。(ただし、プッシュ通知の送信はインターバルを設けているため、即時通知されるとは限りません)

startDateで配信予定日時を指定することもできます。

const count = await RKZ.Push.query()
  .equalTo('user_no', 'APP00001')
  .send({
    startDate: '2023-12-15 09:00:00',
    message: '新商品のお知らせ',
  })
console.log(count)



 



curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[search_condition][user_no]="APP00001"' \
--form 'contents[push_start_dte]="2023-12-15 09:00:00"' \
--form 'contents[push_message]="新商品のお知らせ"'




 

カスタムペイロード

タイトル、メッセージなどの標準項目以外の情報をカスタムペイロードとして送信することができます。

const count = await RKZ.Push.query()
  .send({
    message: '新商品のお知らせ',
    url: 'https://example.com/',
    customVars: {
      itemId: '0001'
    }
  })
console.log(count)



 
 
 
 


curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[push_message]="新商品のお知らせ"' \
--form 'contents[push_url]="https://example.com/"' \
--form 'contents[push_custom_vars]="{\"itemId\": \"0001\"}"'




 
 

送信したカスタムペイロードはアプリ側でハンドリングすることができます。 詳細は各SDKの「受信したプッシュ通知を処理する」を参照ください。

バッジの更新(iOSのみ)

iOSの場合、バッジの更新を行うことができます。

バッジを指定しない場合は変更なし、0を指定した場合はバッジがクリアされます。

const count = await RKZ.Push.query()
  .send({
    message: '新商品のお知らせ',
    badgeNum: 1
  })
console.log(count)



 


curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[push_message]="新商品のお知らせ"' \
--form 'contents[badge_num]="1"'




 

配信期限の設定

配信予約ごとに配信期限を指定することができます。

const count = await RKZ.Push.query()
  .send({
    message: '[告知]本日18:00からタイムセールを行います',
    startDate: '2025-01-15 12:00:00',
    expirationDate: '2025-01-15 18:00:00'
  })
console.log(count)




 


curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[push_message]="[告知]本日18:00からタイムセールを行います"' \
--form 'contents[push_start_dte]="2025-01-15 12:00:00"'
--form 'contents[expiration_dte]="2025-01-15 18:00:00"'





 

日時での指定ではなく、配信予定日時からの経過秒数で指定することもできます。
その場合は、expirationTimeを指定してください。

配信期限は配信予定日時から 最大28日(2,419,200秒)間 まで指定することができます。

const count = await RKZ.Push.query()
  .send({
    message: 'タイムセール',
    startDate: '2025-01-15 12:00:00',
    expirationTime: 10800
  })
console.log(count)




 


curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[push_message]="タイムセール"' \
--form 'contents[push_start_dte]="2025-01-15 12:00:00"'
--form 'contents[expiration_time]="10800"'





 

expirationDateexpirationTimeはどちらか一方のみを指定することができます。
両方に値を指定した場合、配信予約はエラーとなります。

注意

プッシュ配信開始時点で配信期限(配信期限日時、配信期限秒数)を超過している場合、アプリユーザーへのプッシュ配信は実施されません。

ヒント

  • 配信期限(配信期限日時、配信期限秒数)が指定されたプッシュ予約は、通知を受信できなかったオフラインなアプリユーザーに対して通知の再送を行います。
  • 配信期限(配信期限日時、配信期限秒数)が未指定のプッシュ予約は、プッシュ配信の開始から28日間通知の再送を行います。この仕様はAndroid(FCM)のみで、iOS(APNs)は通知の再送処理は行われません。

多言語化

ユーザーが使用している言語ごとに異なるメッセージを送信したい場合、multiLangMessagesを設定してください。multiLangMessagesに渡すオブジェクトのキーは言語コードを指定します。

messageも設定されている場合、multiLangMessagesが優先されます。

const count = await RKZ.Push.query()
  .send({
    multiLangMessages: {
      ja: { message: '新商品のお知らせ' },
      en: { message: 'New Product Announcement' }
    }
  })
console.log(count)


 
 
 
 


curl --location '<配布したベースURL>/api_zeus/push/send' \
--header 'Authorization: Bearer <配布したサーバー認証トークン>' \
--form 'tenant_id="<配布したテナントID>"' \
--form 'contents[multilang_messages][push_message][ja]="新商品のお知らせ"' \
--form 'contents[multilang_messages][push_message][en]="New Product Announcement"'



 
 

注意

言語ごとに異なるメッセージを送信するには、多言語化を有効にする必要があります。詳細は多言語管理を参照ください。