Back to top

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

POST https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/authentication-tokens
URI Parameters
HideShow
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実行キー

Request
HideShow
Headers
X-API-Version: 2017-04-01
X-Service-Key: aaaaaaaa-1111-bbbb-2222-cccccccccccc
Response  200
HideShow

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

POST https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/media
URI Parameters
HideShow
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実行キー

Request  Upload raw data
HideShow
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--
Request  Upload url
HideShow
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--
Request  Upload raw movie data and image url
HideShow
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--
Request  Upload movie url and raw image data
HideShow
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--
Response  200
HideShow

マルチメディア登録成功

Headers
Content-Type: application/json
Body
{
"media_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx" (string, required) - メディアID
}
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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

GET https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/template/dddddddd-dddd-dddd-dddd-dddddddddddd
URI Parameters
HideShow
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

管理サイトの投稿管理画面より取得する。

Request
HideShow
Headers
Content-Type: application/json
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Response  200
HideShow

取得成功

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"
  ]
}
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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

Example URI

POST https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/postings?is_draft=1&is_skip_approved=1
URI Parameters
HideShow
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

Request
HideShow
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"
  ]
}
Response  201
HideShow

登録成功(下書き登録時のみ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"
  ]
}
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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

POST https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/large-segment-postings?is_draft=1&is_skip_approved=1
URI Parameters
HideShow
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

Request
HideShow
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--
Response  200
HideShow

投稿登録成功(Body無し)

Headers
Content-Type: application/json
Response  201
HideShow

下書き登録成功

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"
  ]
}
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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

GET https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/segments/control/list
URI Parameters
HideShow
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実行キー

Request
HideShow
Headers
Authorization: Bearer 1234567890abcdef1234567890abcdef123456
X-API-Version: 2017-04-01
Response  200
HideShow

取得成功

Headers
Content-Type: application/json
Body
{
  "segmentControl": [
    {
      "id": "セグメント名",
      "description": "セグメントの説明を保存します",
      "disabled": 0
    },
    {
      "id": "セグメント名2",
      "description": "disabledが1のデータは投稿ページで非表示です",
      "disabled": 1
    }
  ]
}
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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

POST https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/segments/control/description
URI Parameters
HideShow
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実行キー

Request
HideShow
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"
  ]
}
Response  200
HideShow

セグメントの説明登録成功(ボディ無し)

Headers
Content-Type: application/json
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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

POST https://mgt-api.richflyer.net/v1/customers/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/services/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb/cccccccc-cccc-cccc-cccc-cccccccccccc/segments/control/disabled
URI Parameters
HideShow
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実行キー

Request
HideShow
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"
  ]
}
Response  200
HideShow

セグメントの説明登録成功(ボディ無し)

Headers
Content-Type: application/json
Response  400
HideShow

リクエストボディの解析に失敗

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"
  ]
}
Response  401
HideShow

認証に失敗

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"
  ]
}
Response  403
HideShow

認証は成功しているが、権限がない

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"
  ]
}
Response  404
HideShow

存在しないリソースが指定された

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"
  ]
}
Response  422
HideShow

リクエストボディのバリデーションエラー

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"
  ]
}
Response  500
HideShow

想定外エラー

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"
  ]
}

Generated by aglio on 20 Feb 2024