ユーザープロフィールAPI¶
ユーザープロフィールAPIを使うと、自社のデータベースにのみ保持しているユーザーの属性情報(会員ランクや、LTV、性別、Emailなど)をユーザープロフィールに登録できます。
このAPIを利用して更新したユーザープロフィールの情報を基にして、対象となるユーザーを絞り込んだプッシュ通知やメッセージを送信することができます。
これにより以下のような施策を実現できます。
- ゴールド会員ユーザー向けに特典情報を告知するプッシュ通知を送る
- LTVの高いロイヤルカスタマーのみに特設ページへ招待する内メッセージを送る
ユーザープロフィールに関する詳細は ユーザープロフィール をご覧ください。
注釈
- ユーザープロフィールAPIでは、標準ユーザープロフィール を更新することはできません。
はじめに¶
ユーザープロフィールAPIを使うには、Repro API トークンを利用する必要があります。
Repro API トークンの取得¶
- 設定 > プロジェクト設定 に行き、 認証情報 > Repro API トークン を確認します。

警告
「APIトークンの再発行」をすると既存のAPIトークンを利用できなくなり、あとから復元することはできません。
API 経由でユーザープロフィールを更新する¶
ユーザープロフィールAPIはHTTPの POST
メソッドを受けつけるエンドポイントと紐付いています。
POST https://api.reproio.com/v2/user_profiles
認証¶
取得した Repro API トークンをHTTPヘッダーの X-Repro-Token
フィールドに設定してください。
単位時間あたりのアクセス上限¶
ユーザープロフィールAPIには、単位時間当たりのアクセス制限があります。
- アクセス上限設定値は、APIトークンごとに1分あたり1000件です。
- リクエストが正常に完了すると、レスポンスの
X-RateLimit-Limit
ヘッダーに単位時間あたりのリクエスト上限回数が記載されます。 - リクエスト数がアクセス上限数を超えると、
HTTP Status 429 (Too Many Requests)
が返ります。
レスポンスヘッダーの詳細は ユーザープロフィールAPIのレスポンス をご覧ください。
警告
アクセス上限設定値は予告なく変動する場合があります。
- アクセス上限設定値は、機能単位でのAPIトークンごととなります。例えば、プッシュAPIとユーザープロフィールAPIは同じAPIトークンを利用していますが、別機能のため同時にリクエストしたとしても、それぞれ1件づつのカウントとなります。
APIフォーマット¶
メッセージをHTTP bodyにJSONフォーマットでセットします。
user_id
: アプリやWebサイト内で ユーザーID APIを使って登録されたユーザーのIDを指定します。- 登録されていないユーザーの場合は、
HTTP Status 400 (Bad Request)
が返ります。詳細は ユーザープロフィールAPIのレスポンス をご覧ください。
- 登録されていないユーザーの場合は、
user_profiles
: 1つのペイロードで複数設定できます。(配列形式で格納します)key
: プロフィールのキーです。文字列のみが指定できます。nilや空文字列は不可、上限は255文字です。type
: プロフィールの型です。string
(文字列)、int
(整数)、decimal
(小数)、datetime
(日付) が指定できます。value
: プロフィールの値です。型に応じた値を指定します。
整数¶
{
"key": "Age",
"type": "int",
"value": 25
}
小数¶
{
"key": "Height",
"type": "decimal",
"value": 176.5
}
日付¶
ISO8601 フォーマットに準拠した文字列のみセットできます。
{
"key": "LastLogin",
"type": "datetime",
"value": "2017-08-01T12:34:56.789+09:00"
}
ユーザープロフィールAPIのペイロード例¶
1人のユーザーのプロフィールを更新する¶
{
"user_id": "user-123",
"user_profiles": [
{
"key": "Job",
"type": "string",
"value": "Developer"
},
{
"key": "Age",
"type": "int",
"value": 25
}
]
}
注釈
- 同じキーのプロフィールを複数指定した場合、一番最後のプロフィールが更新の対象となります。
警告
- 既に存在しているユーザープロフィールキーやデータ型は後から変更や削除をすることができません。詳しくは、 ユーザープロフィール をご覧ください。
ユーザープロフィールAPIのリクエスト¶
リクエストヘッダー
リクエストのヘッダーには、以下の値を設定します。
ヘッダー | 説明 | 必須 |
---|---|---|
Content-Type | application/jsonを指定します。 | 必須 |
X-Repro-Token | Repro API トークンの取得 で取得したトークンを指定します。 | 必須 |
リクエストボディ
メッセージをJSONフォーマットで設定します。
ユーザープロフィールAPIのレスポンス¶
レスポンスヘッダー
レスポンスのヘッダーには、以下の値が含まれます。
ステータス | ヘッダー | 説明 |
---|---|---|
正常 | X-RateLimit-Limit |
単位時間あたりのアクセス上限 |
正常 | X-RateLimit-Remaining |
アクセスできる残り回数 |
正常 | X-RateLimit-Reset |
アクセス数がリセットされる時刻(unixtime) |
リクエスト制限 | Retry-After |
再実行可能になるまでの秒数 |
レスポンスボディ
ユーザープロフィールAPIをコールした際の、レスポンスに含まれるステータスコードとエラーメッセージの一覧は下記になります。
202 Accepted¶
リクエストが成功しました。更新したユーザーIDおよびプロフィールに関してはレスポンスボディをご確認ください。
レスポンスボディ:
{
"user_id": "user-123",
"user_profiles": [
{
"key": "Job",
"type": "string",
"value": "Developer"
},
{
"key": "Age",
"type": "int",
"value": 25
},
{
"key": "LastLogin",
"type": "datetime",
"value": "2017-08-01 03:34:56.789"
}
]
}
注釈
- 日付型のプロフィールの値はサーバー側でUTCに変換されます。
400 Bad Request¶
リクエストにエラーがあります。エラーメッセージを確認の上、対応してください。
1001 ペイロードの形式に誤りがあります¶
user_id
や user_profiles
の形式をご確認ください。
レスポンスボディ:
{
"error": {
"code": 1001,
"messages": [
"user_id is missing"
]
}
}
1002 ユーザーIDが登録されていません¶
指定したユーザーIDはまだアプリやWebサイトから登録されていません。
レスポンスボディ:
{
"error": {
"code": 1002,
"messages": [
"'user-123' is not registered"
]
}
}
401 Unauthorized¶
Repro API トークンが指定されていません。
レスポンスボディ:
{
"status": "unauthorized",
"error": {
"messages": [
"Please include your Repro API Token as \"X-Repro-Token\" HTTP header."
]
}
}
403 Forbidden¶
指定した Repro API トークンが間違っています。
レスポンスボディ:
{
"status": "forbidden",
"error": {
"messages": [
"Please check your Repro API Token as \"X-Repro-Token\" HTTP header."
]
}
}
404 Not Found¶
エンドポイントが存在しません。
レスポンスボディ:
{
"status": "not_found",
"error": {
"messages": [
"Not found."
]
}
}
429 Too Many Requests¶
リクエスト数が多すぎます。 Retry-After
ヘッダーに記載された秒数待った後、リクエストを再開してください。
レスポンスボディ:
{
"status": "too_many_requests",
"error": {
"messages": [
"Too many requests hit the API too quickly."
]
}
}