RichFlyer API仕様書
概要
RichFlyer APIは以下のことができます。
-
リッチコンテンツの登録
-
投稿の作成・配信
-
セグメントの作成
準備
APIを利用するためには以下が必要です。
-
RichFlyerアカウントの作成
-
各種認証情報の取得 ※管理サイトより取得できます。
- 管理API実行キー
- SDK実行キー
- カスタマーID
- サービスID
認証について
APIを利用するためには、IDトークン、SDK実行キー、APIバージョンをリクエストに含める必要があります。
-
IDトークン
IDトークンは、後述するIDトークン取得用APIを実行することで発行できます。
以下のようにAuthorizationリクエストヘッダに含められます。Authorization: Bearer 1234567890abcdef1234567890abcdef123456
-
SDK実行キー
SDK実行キーはRichFlyer管理サイトのサービス管理画面から取得できます。(取得方法)
以下のようにX-Service-Keyリクエストヘッダに含められます。X-Service-Key: aaaaaaaa-1111-bbbb-2222-cccccccccccc
-
APIバージョン
X-API-Version: 2017-04-01
NodeJS SDK
APIを簡単に利用できるNodeJS SDKをnpmで配布しています。
RichFlyer管理サイトで汎用的なテンプレートを作成しておけば、SDKを利用してタイトル、メッセージ、リッチコンテンツを指定するだけで投稿が行えます。
SDKについてはこちら。
制限
APIリクエストは以下の制限があります。
※同一のIPアドレスからアクセスに対する制限となります。
-
GETメソッドのAPIは5分間で最大5000リクエストまで
-
GETメソッド以外のAPIは5分間で最大500リクエストまで
【公開】IDトークン取得 ¶
IDトークン発行 ¶
IDトークン発行POST/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/authentication-tokens
IDトークンを発行する。 他の公開APIを使用する際には、本APIで取得したIDトークンをリクエストヘッダに指定する。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
Headers
X-API-Version: 2017-04-01
X-Service-Key: aaaaaaaa-1111-bbbb-2222-cccccccccccc
200
APIキーの認証成功/認証トークンの発行
Headers
Content-Type: application/json
Body
{
"id_token": "1234567890abcdef1234567890abcdef123456"
}
【公開】メディア ¶
メディア登録/アップロード ¶
メディア登録/アップロードPOST/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/media
動画(MP4, GIF)、静止画(JPEG,PNG)をリッチコンテンツとして登録する。
動画を登録する場合は、表紙となる静止画も同時に指定する必要がある。
ファイルまたはURLが登録可能。
マルチパートでアップロードを行い、“movie”,"image"はファイルバイナリを、“movieUrl”,"imageUrl"はURLを指定する。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
Upload raw data
Headers
Content-Type: multipart/form-data;boundary=----BOUNDARY
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
----BOUNDARY
Content-Disposition: form-data; name="movie"
data
----BOUNDARY
Content-Disposition: form-data; name="image"
data
----BOUNDARY--
Upload url
Headers
Content-Type: multipart/form-data;boundary=----BOUNDARY
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
----BOUNDARY
Content-Disposition: form-data; name="movieUrl"
https://richflyer.net/sample.mp4
----BOUNDARY
Content-Disposition: form-data; name="imageUrl"
https://richflyer.net/sample.jpg
----BOUNDARY--
Upload raw movie data and image url
Headers
Content-Type: multipart/form-data;boundary=----BOUNDARY
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
----BOUNDARY
Content-Disposition: form-data; name="movie"
data
----BOUNDARY
Content-Disposition: form-data; name="imageUrl"
https://richflyer.net/sample.jpg
----BOUNDARY--
Upload movie url and raw image data
Headers
Content-Type: multipart/form-data;boundary=----BOUNDARY
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
----BOUNDARY
Content-Disposition: form-data; name="movieUrl"
https://richflyer.net/sample.mp4
----BOUNDARY
Content-Disposition: form-data; name="image"
data
----BOUNDARY--
200
マルチメディア登録成功
Headers
Content-Type: application/json
Body
{
"media_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx" (string, required) - メディアID
}
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
【公開】投稿 ¶
テンプレート取得 ¶
テンプレート取得GET/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/template/{template_id}
RichFlyer管理サイトで作成したテンプレートデータを取得する。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
- template_id
string
(required) Example: dddddddd-dddd-dddd-dddd-ddddddddddddテンプレートID
管理サイトの投稿管理画面より取得する。
Headers
Content-Type: application/json
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
200
取得成功
Headers
Content-Type: application/json
Body
{
"posting_type_id": 1,
"title": "xxxxxxxx",
"send_datetime": 1496118365,
"body": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ios_destinations": [
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
],
"android_destination_id": "xxxxxxxxxxxxxxxx",
"sns_destinations": [
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
],
"sns_additional_texts": [
{
"sns_destination_type_id": 1,
"body": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
],
"segments": [
{
"key": "XXXXX",
"values": [
"XXXXX",
"XXXXX",
"XXXXX"
]
}
],
"delivery_condition_id": "xxxxxxxxxxxxxxxx",
"multimedia": "XXXXXXXXXXXXXXXXXXXX",
"action_buttons": [
{
"label": "XXXXXXXXXX",
"type": "url",
"value": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"options": [
1,
2,
3
]
}
],
"click_action": "Extended Property",
"is_used_webpush": 1,
"is_used_safaripush": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"posting_type_id": {
"type": "number",
"description": "投稿種別ID(1:予約, 2:即時)。"
},
"title": {
"type": "string",
"description": "タイトル"
},
"send_datetime": {
"type": "number",
"description": "送信予定日時。UNIXタイムスタンプ(秒)。投稿種別が即時以外の場合は必須とする。"
},
"body": {
"type": "string",
"description": "本文"
},
"ios_destinations": {
"type": "array",
"description": "iOS配信先ID。`[a-z0-9]{16}`"
},
"android_destination_id": {
"type": "string",
"description": "Android配信先ID。`[a-z0-9]{16}`"
},
"sns_destinations": {
"type": "array",
"description": "SNS配信先プラットフォーム。SNS配信先IDの配列。"
},
"sns_additional_texts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sns_destination_type_id": {
"type": "number",
"description": "SNS配信先種別ID(1:Twitter, 2:Facebook)"
},
"body": {
"type": "string",
"description": "追加文言"
}
}
},
"description": "SNS用追加テキスト。ハッシュタグなどを入力"
},
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "セグメント"
},
"values": {
"type": "array",
"description": "セグメント値"
}
},
"required": [
"key",
"values"
]
},
"description": "セグメント"
},
"delivery_condition_id": {
"type": "string",
"description": "配信条件ID `[a-z0-9]{16}`"
},
"multimedia": {
"type": "string",
"description": "リッチコンテンツのメディアID"
},
"action_buttons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "アクションボタンラベル"
},
"type": {
"type": "string",
"description": "アクションボタンアクション"
},
"value": {
"type": "string",
"description": "アクションボタンurl"
},
"options": {
"type": "array",
"description": "アクションボタンオプション"
}
}
},
"description": "アクションボタン"
},
"click_action": {
"type": "string",
"description": "拡張プロパティ"
},
"is_used_webpush": {
"type": "number",
"description": "ウェブプッシュ通知を利用するか否か。1(利用)または0(利用しない)。未指定の場合は0"
},
"is_used_safaripush": {
"type": "number",
"description": "Safariプッシュを利用するか否か。1(利用)または0(利用しない)。未指定の場合は0"
}
},
"required": [
"posting_type_id",
"title",
"body"
]
}
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
投稿登録 ¶
投稿登録POST/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/postings?is_draft={is_draft}&is_skip_approved={is_skip_approved}
投稿を登録する。
投稿は「本登録 / 下書き」のいずれかが指定可能。
本登録をする場合、承認をスキップすることが可能。※承認をスキップした場合はすぐに投稿が実行される。
下書き登録した場合のみ、レスポンスボディが応答され、RichFlyer管理サイトの編集画面へアクセスするためのURLが含まれる。
Tips
-
リクエストボディは、テンプレート取得API、または管理サイトで出力したテンプレートデータを取得し、内容を編集して運用すると効率的です。
-
512個より多くのセグメント値を指定したい場合は、投稿登録/セグメント値ファイル利用APIを利用してください。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
- is_draft
number
(optional) Default: 0 Example: 1下書き保存フラグ
"1"を指定した場合、下書きとして登録する。
Choices:
0
1
- is_skip_approved
number
(optional) Default: 1 Example: 1承認をスキップするか
"1"を指定した場合、承認処理をスキップしてすぐに投稿が実行される。
Choices:
0
1
Headers
Content-Type: application/json
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
{
"posting_type_id": 1,
"title": "xxxxxxxx",
"send_datetime": 1496118365,
"body": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ios_destinations": [
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
],
"android_destination_id": "xxxxxxxxxxxxxxxx",
"sns_destinations": [
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
],
"sns_additional_texts": [
{
"sns_destination_type_id": 1,
"body": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
],
"delivery_condition_id": "xxxxxxxxxxxxxxxx",
"multimedia": "XXXXXXXXXXXXXXXXXXXX",
"action_buttons": [
{
"label": "XXXXXXXXXX",
"type": "url",
"value": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"options": [
1,
2,
3
]
}
],
"click_action": "Extended Property",
"use_uploaded_media_on_sns": false,
"is_used_webpush": 1,
"is_used_safaripush": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"posting_type_id": {
"type": "number",
"description": "投稿種別ID(1:予約, 2:即時)。"
},
"title": {
"type": "string",
"description": "タイトル"
},
"send_datetime": {
"type": "number",
"description": "送信予定日時。UNIXタイムスタンプ(秒)。投稿種別が即時以外の場合は必須とする。"
},
"body": {
"type": "string",
"description": "本文"
},
"ios_destinations": {
"type": "array",
"description": "iOS配信先ID。`[a-z0-9]{16}`"
},
"android_destination_id": {
"type": "string",
"description": "Android配信先ID。`[a-z0-9]{16}`"
},
"sns_destinations": {
"type": "array",
"description": "SNS配信先プラットフォーム。SNS配信先IDの配列。"
},
"sns_additional_texts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sns_destination_type_id": {
"type": "number",
"description": "SNS配信先種別ID(1:Twitter, 2:Facebook)"
},
"body": {
"type": "string",
"description": "追加文言"
}
}
},
"description": "SNS用追加テキスト。ハッシュタグなどを入力"
},
"delivery_condition_id": {
"type": "string",
"description": "配信条件ID `[a-z0-9]{16}`"
},
"multimedia": {
"type": "string",
"description": "リッチコンテンツのメディアID"
},
"action_buttons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "アクションボタンラベル"
},
"type": {
"type": "string",
"description": "アクションボタンアクション"
},
"value": {
"type": "string",
"description": "アクションボタンurl"
},
"options": {
"type": "array",
"description": "アクションボタンオプション"
}
}
},
"description": "アクションボタン"
},
"click_action": {
"type": "string",
"description": "拡張プロパティ"
},
"use_uploaded_media_on_sns": {
"type": "boolean",
"description": "iOS/Android投稿(ペイロード)にSNSにアップロードしたメディアURLを使用するか否かのフラグ"
},
"is_used_webpush": {
"type": "number",
"description": "ウェブプッシュ通知を利用するか否か。1(利用)または0(利用しない)。未指定の場合は0"
},
"is_used_safaripush": {
"type": "number",
"description": "Safariプッシュを利用するか否か。1(利用)または0(利用しない)。未指定の場合は0"
}
},
"required": [
"posting_type_id",
"title",
"body"
]
}
201
登録成功(下書き登録時のみBodyあり)
Headers
Content-Type: application/json
Body
{
"url": "https://mgt.richflyer.net/external-posting/***************"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "編集用ワンタイムURL"
}
},
"required": [
"url"
]
}
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
投稿登録/セグメント値ファイル利用 ¶
投稿登録/セグメント値ファイル利用POST/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/large-segment-postings?is_draft={is_draft}&is_skip_approved={is_skip_approved}
512個以上のセグメント値を利用した投稿を登録する。
※セグメントは “セグメントキー” と “セグメント値” で構成され、一つのセグメントキーに対して複数のセグメント値が属する。
(例)
セグメントキー: 好みのジャンル
セグメント値: コミック, 小説, 雑誌, ビジネス…etc
マルチパート形式 でリクエストを行い、メッセージの情報を記載する ペイロード部(JSON形式) とセグメント値を記載する セグメント指定部(ファイル形式) に分かれる。
ペイロード部(JSON形式)にはセグメントキーとファイル名を記述し、セグメント指定部の Content-Dispositionヘッダ の name にセグメントキー、filename にファイル名を指定する。
セグメント値ファイルは、複数の値を半角スペース、改行、カンマで区切って格納する。
指定できるセグメント値は、ファイルの数に関わらず最大1万個まで。
投稿は「本登録 / 下書き」のいずれかが指定可能。
本登録をする場合、承認をスキップすることが可能。※承認をスキップした場合はすぐに投稿が実行される。
下書き登録した場合のみ、レスポンスボディが応答され、RichFlyer管理サイトの編集画面へアクセスするためのURLが含まれる。
Tips
リクエストボディは、テンプレート取得API、または管理サイトで出力したテンプレートデータを取得して、項目segments を変更したものを利用すると効率的です。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
- is_draft
number
(optional) Default: 0 Example: 1下書き保存フラグ
"1"を指定した場合、下書きとして登録する。
Choices:
0
1
- is_skip_approved
number
(optional) Default: 1 Example: 1承認をスキップするか
"1"を指定した場合、承認処理をスキップしてすぐに投稿が実行される。
Choices:
0
1
Headers
Content-Type: multipart/form-data;boundary=----BOUNDARY
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
----BOUNDARY
Content-Disposition: form-data; name="payload"
Content-Type: application/json
{
"posting_type_id": 1,
"title": "xxxxxxxx",
"send_datetime": 1496118365,
"body": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ios_destinations": [
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
],
"android_destination_id": "xxxxxxxxxxxxxxxx",
"sns_destinations": [
"xxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxx"
],
"sns_additional_texts": [
{
"sns_destination_type_id": 1,
"body": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
],
"segments": [
{
"key": "segment1",
"filename": "segment1.txt"
},
{
"key": "segment2",
"filename": "segment2.txt"
},
{
"key": "segment3",
"values": [
"XXXXX",
"XXXXX",
"XXXXX"
]
}
],
"delivery_condition_id": "xxxxxxxxxxxxxxxx",
"multimedia": "XXXXXXXXXXXXXXXXXXXX",
"action_buttons": [
{
"label": "XXXXXXXXXX",
"type": "url",
"value": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"options": [
1,
2,
3
]
}
],
"click_action": "Extended Property",
"use_uploaded_media_on_sns": false,
"is_used_webpush": 1,
"is_used_safaripush": 1
}
----BOUNDARY
Content-Disposition: form-data; name="segment1"; filename="segment1.txt"
Content-Type: text/plain
value1,value2,value3,value4,value5
----BOUNDARY--
Content-Disposition: form-data; name="segment2"; filename="segment2.txt"
Content-Type: text/plain
value1,value2,value3,value4,value5
----BOUNDARY--
200
投稿登録成功(Body無し)
Headers
Content-Type: application/json
201
下書き登録成功
Headers
Content-Type: application/json
Body
{
"url": "https://mgt.richflyer.net/external-posting/***************"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "編集用ワンタイムURL"
}
},
"required": [
"url"
]
}
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
【公開】セグメント ¶
セグメント管理情報一覧取得 ¶
セグメント管理情報一覧取得GET/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/segments/control/list
セグメント管理情報を取得する。 管理情報はセグメント作成APIで作成したセグメントか、RF管理画面上で説明もしくは有効/無効を登録したセグメントが返される。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
Headers
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
200
取得成功
Headers
Content-Type: application/json
Body
{
"segmentControl": [
{
"id": "セグメント名",
"description": "セグメントの説明を保存します",
"disabled": 0
},
{
"id": "セグメント名2",
"description": "disabledが1のデータは投稿ページで非表示です",
"disabled": 1
}
]
}
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
セグメント説明登録 ¶
セグメント説明登録POST/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/segments/control/description
セグメントに関する説明を登録する。
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
Headers
Content-Type: application/json
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
{
"id": "age",
"description": "年齢"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "設定対象のセグメント名称"
},
"description": {
"type": "string",
"description": "セグメントの説明"
}
},
"required": [
"id",
"description"
]
}
200
セグメントの説明登録成功(ボディ無し)
Headers
Content-Type: application/json
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
セグメント表示状態登録 ¶
セグメント表示状態登録POST/v1/customers/{customer_id}/services/{service_id}/{outside_api_key}/segments/control/disabled
投稿画面上でのセグメントの表示状態(設定可否)を登録する
Example URI
- customer_id
string
(required) Example: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaaカスタマーID
- service_id
string
(required) Example: bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbbサービスID
- outside_api_key
string
(required) Example: cccccccc-cccc-cccc-cccc-cccccccccccc管理API実行キー
Headers
Content-Type: application/json
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Body
{
"id": "age",
"disabled": 1
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "設定対象のセグメント名称"
},
"disabled": {
"type": "number",
"description": "セグメントの表示状態。0:表示 1:非表示"
}
},
"required": [
"id",
"disabled"
]
}
200
セグメントの説明登録成功(ボディ無し)
Headers
Content-Type: application/json
400
リクエストボディの解析に失敗
Headers
Content-Type: application/json
Body
{
"message": "Failed to parse json request."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
401
認証に失敗
Headers
Content-Type: application/json
Body
{
"message": "Authentication is failed."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
403
認証は成功しているが、権限がない
Headers
Content-Type: application/json
Body
{
"message": "No permission to access."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
404
存在しないリソースが指定された
Headers
Content-Type: application/json
Body
{
"message": "Specified resource does not exist."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
422
リクエストボディのバリデーションエラー
Headers
Content-Type: application/json
Body
{
"message": "Request body is invalid.",
"param": "device_type (0), environment (0)"
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}
500
想定外エラー
Headers
Content-Type: application/json
Body
{
"message": "Fault occured on server."
}
Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "エラー内容"
},
"param": {
"type": "string",
"description": "パラメータエラーの場合の発生パラメータ"
}
},
"required": [
"message"
]
}