プッシュ通知の配信予約

管理者向け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"'




 

多言語化

ユーザーが使用している言語ごとに異なるメッセージを送信したい場合、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"'



 
 

注意

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