プッシュ通知の配信予約
管理者向け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"'
注意
言語ごとに異なるメッセージを送信するには、多言語化を有効にする必要があります。詳細は多言語管理を参照ください。