Push通知の配信履歴APIを実装したい

Push通知の配信履歴APIとは

本APIの概要

Push通知の配信履歴APIとは、b→dashで配信したPush通知の配信履歴と、その説明文をb→dash管理画面を介さずにデータファイル更新を行うことができるAPIです

貴社の基幹システム/アプリケーションに連携したデータファイル更新を行いたい場合は、本API仕様書をご参照のもと貴社開発環境に実装してください。

API利用にあたっての前提事項

事前準備

Push通知の配信履歴APIを利用する事前準備として、アクセストークンをアプリごとに発行しておく必要があります。
アクセストークンの発行については、貴社カスタマーサクセス担当までお問い合わせください

非機能要件

Push通知の配信履歴APIは、下記の非機能要件を持ちます。

# 項目 非機能要件
1 URI長の上限 2KBまで
2 レスポンス 秒間100リクエストに対して、20件の履歴を0.5秒以内に返すこと
3 月間リクエスト上限数 100,000,000リクエスト
※超過した場合でも、エラーになりません
4 分間リクエスト上限数 10,000リクエスト
5 レート制限 1秒あたり1,000リクエスト
6 タイムアウト 10秒
事前準備と非機能要件の確認ができましたら、Push通知の配信履歴APIの利用方法について説明していきます!

Push通知の配信履歴APIの仕様

処理フロー図

Push通知の配信履歴APIの処理フロー図は以下になります。

配信履歴リクエスト

Push通知の配信履歴APIのURLURLパラメータを指定してデータ連携をリクエストするリクエストURLを準備します

〇Push通知の配信履歴APIのURL

URI https://push-history.smart-bdash.com/api/push/history/:uuid

〇URLパラメータ

プロパティ データ型 必須 説明
uuid string ユーザーが保有する各デバイス固有のUUID。
URL末尾に取得したい履歴のuuidを指定する。

【リクエストURLサンプル

https://push-history.smart-bdash.com/api/push/history/{uuid}?description=true&with_trial=false&send_status=all https://push-history.smart-bdash.com/api/push/history/:00x0xx00-x1x111x11111
URLパラメータは、URLの「uuid」に該当する値を代入することで指定することができます。
準備したリクエストURLと、下記のリクエストヘッダパラメータを用いて、貴社Webアプリから「GET」リクエスト形式で配信履歴のリクエストをします

〇リクエスト形式

メソッド GET

〇リクエストヘッダパラメータ

プロパティ データ型 必須 説明
Authorization string 値:Bearer {アクセストークン}
If-None-Match string レスポンスの高速化のため、b→dash サーバーからのレスポンスの ETag ヘッダ ーで返却する値を、If-None-Match ヘッダーに設定する。

※ 初回リクエスト時は、空文字を If-None-Match ヘッダーに設定する

〇クエリパラメータ

プロパティ データ型 必須 説明
with_trial string - レスポンスにテスト送信の配信履歴情報を含めて取得したい場合は、この値を「true」としてクエリパラメーターに設定する。

※ 何も指定しない(「true以外」を指定する)場合、テスト送信は履歴情報に含まれずにレスポンスが返却される
limit string - 最大取得件数

・設定値:1~50
※ 1~50以外の値や省略時は、50が入る
page string - 取得対象のページ(1ページにつき、50件を取得する)

・設定範囲:1~9999
※ 省略時は1ページ目を取得する。
  また取得対象は、
  「①配信日時の降順 ②配信IDの昇順」で
  並び替えて返却する。
description string - 説明文を取得するかどうか選択できる。

・true :取得する
・false:取得しない
※ 省略時は「false」が入る
count boolean - 配信履歴の総数を取得するかを選択できる。

・true :取得する
・false:取得しない
※ 省略時は「false」が入る
send_status string - 取得対象の配信履歴を選択できる。

・sent  :配信済みの配信履歴のみ取得
・unsent:未配信の配信履歴のみ取得
・all   :すべての配信履歴を取得
※ 省略時は「sent」が入る

リクエストコードサンプル

GET https://push-history.smart-bdash.com/api/push/history/{uuid}?description=true&with_trial=false&send_status=all https://push-history.smart-bdash.com/api/push/history/:00x0xx00-x1x111x11111

配信履歴レスポンス

リクエストの送信に成功すると、下記のレスポンス形式で配信履歴が記載されたレスポンスが返されます

〇レスポンスボディパラメータ

パラメータ名 Key データ型 説明
階層1:total_count - integer 配信履歴の総数
※「count = true」とした時のみ返却する
階層1:page - integer レスポンスのページ数
階層1:limit - integer レスポンスの最大取得件数
階層1:has_next_page - boolean 未取得の配信履歴があるか

ある場合:true
ない場合:false
階層1:result - object -
階層2:id - string Push通知配信ID
階層2:title - string Push通知のタイトル
階層2:message - string Push通知の本文
階層2:description - string Push通知の説明文
階層2:image_url - string Push通知の画像URL
階層2:delivery_time - timestamp Push通知の配信日時
階層2:expiration_time - timestamp Push通知の保持期間日時

※ 配信日時から180日後の日付が入る

【レスポンスボディサンプル】

{
  "total_count": 100,
  "page": 2,
  "limit": 50,
  "has_next_page": true,
  "result": [
    {
      "id": 30,
      "title": "タイトル",
      "message": "本文",
      "description": "説明文",
      "image_url": "https:xxxx",
      "delivery_time": "2019-06-12T07:00:00.000Z",
      "expiration_time": "2019-06-14T07:00:00.000Z"
    },
    {
      "id": 31,
      "title": "タイトル",
      "message": "本文",
      "description": "説明文",
      "image_url": "https:yyyy",
      "delivery_time": "2019-06-13T07:00:00.000Z",
      "expiration_time": "2019-06-15T07:00:00.000Z"
    }
  ]
}

○リクエスト正常終了時のレスポンス

# コード 意味 説明
1 200 取得成功 配信履歴の取得リクエストが成功
2 304 リソースが未更新 該当の「notification_id」に対する配信履歴情報が、前回リクエスト時から更新されていない場合は『304 Not Modified』が返却される。
※ この場合、レスポンスには本文が含まれない

○リクエストエラー発生時のレスポンス

# コード 意味 説明
1 401 認証失敗 配信履歴の取得処理で認証に失敗
2 504 タイムアウト 配信履歴の取得処理でタイムアウトが発生