OpenID Connectによるユーザーの認可、認証
一部のAPI の使用には、それに先立って、ユーザーの認可を得、さらにアクセストークンを得るという手順が必要なものがあります。発行されるアクセストークンは、APIへのアクセスの度に必要です。アクセストークンは、発行から一定時間が過ぎると使えなくなります。発行されたアクセストークンの有効期限が切れたときは、再びユーザーの認可を受けるという手順を踏まずに、再びアクセストークンを得ることができます。
認可 | GET https://console.root.bricks.pub/oauth/authorize |
アクセストークン取得 | GET https://console.root.bricks.pub/oauth/token |
アクセストークン再取得 | GET https://console.root.bricks.pub/oauth/token |
ユーザー情報取得 | GET https://console.root.bricks.pub/oauth/userinfo |
ユーザーの認可を得る
OAuth2 Authorization Code Flow による認証を行い、特定のAPIエンドポイントにアクセスする権限を取得する。
各APIエンドポイントには、アクセスに必要な権限(スコープ)が指定されている。Brickは、指定された全ての権限について本エンドポイントから認可された時にのみ、当該のAPIエンドポイントにアクセスできる。本エンドポイントへのアクセスは、APIエンドポイントへのアクセスごとや権限ごとに行う必要は無く、複数のAPIエンドポイントで必要な権限をまとめて認可されうる。各権限は、次の全てを満たした場合に認可される。
- Brickの登録時に、FLB ROOTがBrickに対してその権限を与えている。
- Brickが本エンドポイントにアクセスした時に、要求のパラメーターにその権限が含まれている。
- Brickがその権限を持ってユーザーの情報にアクセスすることをユーザーがウェブブラウザを通じて認める。
本エンドポイントから権限の認可を受けるだけではAPIエンドポイントを使うことは出来ず、戻り値に含まれる code の値を使ってさらにアクセストークンを得る必要がある。
Brickが秘密の文字列を生成して要求時にパラメーター state の値として渡すと、応答にも同じ値が返され、Brickがその同一性を検証することによって、応答がFLB ROOTのなりすましからのものでないことの目安にできる。
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
response_type | レスポンスタイプ | code | String | ○ |
client_id | Brick登録時にFLB ROOTが発行したOpenID ConnectのID | 05db40592ba093fc7af4b2b0925625a2869a551b6beba90aa84fb6df1019ca25 | String | ○ |
client_secret | Brick登録時にFLB ROOTが発行したOpenID ConnectのSecret | e1cb1707ed0bf779c0adf455467e1ffb17e4fbe6f47561bfbff3c250e1278d38 | String | ○ |
redirect_uri | Brick登録時にFLB ROOTに登録したリダイレクトURI | https://example.com/auth_callback | String | ○ |
scope | このあと発行されるトークンを使ってアクセスするAPIエンドポイントに必要な全ての権限を空白でつないだもの | openid email | String | ○ |
nonce | 任意の文字列 | 363df3006cbadb6695f02b48658bba97 | String | |
state | 任意の文字列 | cbd27e4f027eea53c4fdbe7e76a26e | String |
GET /oauth/authorize
/*
* 要求をすると認可画面にリダイレクトされ、
* ユーザーがその画面上の説明に同意して「許可する」ボタンを押すと、
* 次にredirect_urlにリダイレクトされる。そのURLのクエリーに以下のパラメータ値が与えられる。
*/
https://example.com/auth_callback?code=e885b973e64797bcf3342529d57cd2adca97a11f787ef9736ea92d8061e5aa59&state=cbd27e4f027eea53c4fdbe7e76a26e
アクセストークンを得る
認可を得たら、それに引き続いて、APIへのアクセスに必要なアクセストークンを得る。
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
grant_type | authorization_code | String | ○ | |
client_id | Brick登録時にFLB ROOTが発行したOpenID ConnectのID | 05db40592ba093fc7af4b2b0925625a2869a551b6beba90aa84fb6df1019ca25 | String | ○ |
client_secret | Brick登録時にFLB ROOTが発行したOpenID ConnectのSecret | e1cb1707ed0bf779c0adf455467e1ffb17e4fbe6f47561bfbff3c250e1278d38 | String | ○ |
redirect_uri | Brick登録時にFLB ROOTに登録したリダイレクトURI | https://example.com/auth_callback | String | ○ |
code | 認可を得た時に応答の本文に含まれていたcodeの値 | e885b973e64797bcf3342529d57cd2adca97a11f787ef9736ea92d8061e5aa59 | String | ○ |
GET /oauth/token
{
"token_type": "bearer",
"access_token": "KGWLeYtDKj4caXm-cIOnHGRzMbHWgS-iJKYNxUh1Ei0",
"expires_in": 1209599,
"refresh_token": "LRGipWfRdqGaK3_v6lSjQ_WLaqMbrGdSRpVjARYpTJc",
"scope": "openid email",
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImFGam5uVzE1ZFdPU1lycjhHeGdxclU5b1N4c3lGUGxCNE1Hdkl5WUV6TWMifQ.eyJpc3MiOiJodHRwczovL2NvbnNvbGUucm9vdC5icmlja3MucHViIiwic3ViIjoiODNlZDMzN2QtNjBlZi00M2E1LWFjMjctNDcwNzAwZDJkNjM3IiwiYXVkIjoiMDVkYjQwNTkyYmEwOTNmYzdhZjRiMmIwOTI1NjI1YTI4NjlhNTUxYjZiZWJhOTBhYTg0ZmI2ZGYxMDE5Y2EyNSIsImV4cCI6MTU2MDMwNTcwNCwiaWF0IjoxNTYwMzA1NTg0LCJub25jZSI6IjQzYjA0YWUxMmRjZTU0ZDJmZTA4Yzk3ZjkyMGNjYTllIiwiYXV0aF90aW1lIjoxNTQ4OTE5Mzc3fQ.uTLl16rNb8WHoQK-2Ou2jyTdibYLTEjz1eSnBIhtRdtGiy0UeDCW2aaxJyAV6tAoA91zgBM_ZDg3KZgEkGpZJ5jY6VDtKD1BthJz3UDLXAVVbJvOtWADOJ3-ooqo0LTtMXrTh4lAmjbYEs78DVqlsFO1ZfiBQzSYU9c7-Yphvn8ocpX8VE3zKIzEjOWG_fB4rS-a6Xua78msOptolq_L0FWkQ9WfbPQ-cie0R9pij_tPe1yAUKNY-qISvdou_d6ccN1OHaCmhbDeIxm-D71GBgV7hgTg6SFnpOgx2MI3BrfYWANJ0Ro0UCRjcWoCffnEXDzmhy3OnRubHzXTlLR9tQ"
}
アクセストークンを再び得る
一度アクセストークンの発行を受けた後、再び認可を受ける手順を踏まずにアクセストークンを再び得る。
再発行されたアクセストークンを使用すると、以前のアクセストークン access_token 及び refresh_token は無効になります。
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
grant_type | refresh_token | String | ○ | |
refresh_token | アクセストークンを得た時に応答の本文に含まれていたrefresh_tokenの値 | LRGipWfRdqGaK3_v6lSjQ_WLaqMbrGdSRpVjARYpTJc | String | ○ |
client_id | Brick登録時にFLB ROOTが発行したOpenID ConnectのID | 05db40592ba093fc7af4b2b0925625a2869a551b6beba90aa84fb6df1019ca25 | String | ○ |
client_secret | Brick登録時にFLB ROOTが発行したOpenID ConnectのSecret | e1cb1707ed0bf779c0adf455467e1ffb17e4fbe6f47561bfbff3c250e1278d38 | String | ○ |
GET /oauth/token
{
"token_type": "bearer",
"access_token": "KGWLeYtDKj4caXm-cIOnHGRzMbHWgS-iJKYNxUh1Ei0",
"expires_in": 1209599,
"refresh_token": "LRGipWfRdqGaK3_v6lSjQ_WLaqMbrGdSRpVjARYpTJc",
"scope": "openid email",
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImFGam5uVzE1ZFdPU1lycjhHeGdxclU5b1N4c3lGUGxCNE1Hdkl5WUV6TWMifQ.eyJpc3MiOiJodHRwczovL2NvbnNvbGUucm9vdC5icmlja3MucHViIiwic3ViIjoiODNlZDMzN2QtNjBlZi00M2E1LWFjMjctNDcwNzAwZDJkNjM3IiwiYXVkIjoiMDVkYjQwNTkyYmEwOTNmYzdhZjRiMmIwOTI1NjI1YTI4NjlhNTUxYjZiZWJhOTBhYTg0ZmI2ZGYxMDE5Y2EyNSIsImV4cCI6MTU2MDMwNTcwNCwiaWF0IjoxNTYwMzA1NTg0LCJub25jZSI6IjQzYjA0YWUxMmRjZTU0ZDJmZTA4Yzk3ZjkyMGNjYTllIiwiYXV0aF90aW1lIjoxNTQ4OTE5Mzc3fQ.uTLl16rNb8WHoQK-2Ou2jyTdibYLTEjz1eSnBIhtRdtGiy0UeDCW2aaxJyAV6tAoA91zgBM_ZDg3KZgEkGpZJ5jY6VDtKD1BthJz3UDLXAVVbJvOtWADOJ3-ooqo0LTtMXrTh4lAmjbYEs78DVqlsFO1ZfiBQzSYU9c7-Yphvn8ocpX8VE3zKIzEjOWG_fB4rS-a6Xua78msOptolq_L0FWkQ9WfbPQ-cie0R9pij_tPe1yAUKNY-qISvdou_d6ccN1OHaCmhbDeIxm-D71GBgV7hgTg6SFnpOgx2MI3BrfYWANJ0Ro0UCRjcWoCffnEXDzmhy3OnRubHzXTlLR9tQ"
}
ユーザー情報を得る
ユーザーごとにユニークな値subなどのユーザー情報を取得します。
設定したscopeにより取得できる情報が変わります。
HTTPヘッダーに設定が必要なパラメーター
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
Authorization | 認可時に生成されたAccess token | Bearer 0c0188db9ec9e0094db220c6cfacf4b8c554cc753626495f8d17f6b120a686fd | String | ○ |
GET /oauth/userinfo
{
"sub": "2a4767aa-cd30-4b3b-9ad7-466a79b568dd",
"email": "test@example.com", /* email scopeを設定すると取得できます。 */
"updated_at": "2019-05-16T02:16:58.866Z", /* profile scopeを設定すると取得できます。 */
"owners": [
{
"id": "aa500ea0-cab3-42fe-ab26-9c4b38934c01",
"name": "テストオーナー",
"created_at": "2019-03-15T08:13:27.936Z",
"updated_at": "2019-03-15T08:13:27.936Z"
}
] /* profile scopeを設定すると取得できます。 */
}
全般
成功時には 2xx
を、エラー時には 4xx
または 5xx
をステータスコードとして返します。
全てのAPIに共通して必要なHTTPヘッダー
パラメーター | 説明 | 例 |
---|---|---|
Content-Type | コンテントタイプ | application/json |
X-API-KEY | 作成したBrickのAPIキー | Qi9rmEkBKx2AHdJKMwwkTr3wW67Jaxv6Je8yL88d |
owners配下のAPIに共通して必要なHTTPヘッダー
パラメーター | 説明 | 例 |
---|---|---|
Authorization | 認可時に生成されたAccess token | Bearer 0c0188db9ec9e0094db220c6cfacf4b8c554cc753626495f8d17f6b120a686fd |
ページネーション
各リソースの一覧にページングできるURLが含まれています。
GET /v1/{resources}
{
"data": [
... Endpoint data is here
],
"paging": {
"prev_url": "http://api.root.bricks.pub/v1/{resources}?before=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9",
"next_url": "http://api.root.bricks.pub/v1/{resources}?after=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9"
}
}
コンテンツ
コンテンツ一覧取得
GET /v1/contents
{
"data": [
{
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"title": "吾輩は猫である",
"description": "吾輩は猫である。名前はまだ無い。",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5",
"authors": [
{
"name": "夏目漱石",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-3",
"size": 1697542,
"uploaded_stamp": 1522132979
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/default.jpg",
"size": 187809,
"uploaded_stamp": 1522132977
}
},
{
"id": "aa717822-e437-4595-8a11-0d38882789e9",
"title": "人間失格",
"description": "私は、その男の写真を三葉、見たことがある。",
"owner_id": "5fb20d98-b5cf-4e0b-96e2-2fe80fe8b1dc",
"authors": [
{
"name": "太宰治",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-2",
"size": 358508909,
"uploaded_stamp": 1522128276
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/aa717822-e437-4595-8a11-0d38882789e9/default.jpg",
"size": 99954,
"uploaded_stamp": 1522128215
}
}
],
"paging": {
"prev_url": "http://api.root.bricks.pub/v1/contents?before=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9",
"next_url": "http://api.root.bricks.pub/v1/contents?after=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9"
}
}
コンテンツ検索
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
q | 指定した文字列を含むコンテンツを対象とする | サンプル | String | ○ |
GET /v1/contents/search
{
"data": [
{
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"title": "吾輩は猫である",
"description": "吾輩は猫である。名前はまだ無い。",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5",
"authors": [
{
"name": "夏目漱石",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-3",
"size": 1697542,
"uploaded_stamp": 1522132979
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/default.jpg",
"size": 187809,
"uploaded_stamp": 1522132977
}
},
{
"id": "aa717822-e437-4595-8a11-0d38882789e9",
"title": "人間失格",
"description": "私は、その男の写真を三葉、見たことがある。",
"owner_id": "5fb20d98-b5cf-4e0b-96e2-2fe80fe8b1dc",
"authors": [
{
"name": "太宰治",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-2",
"size": 358508909,
"uploaded_stamp": 1522128276
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/aa717822-e437-4595-8a11-0d38882789e9/default.jpg",
"size": 99954,
"uploaded_stamp": 1522128215
}
}
],
"paging": {
"prev_url": "http://api.root.bricks.pub/v1/contents?before=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9",
"next_url": "http://api.root.bricks.pub/v1/contents?after=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9"
}
}
コンテンツ詳細取得
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
content_id | パスパラメータに指定したIDのコンテンツ情報を取得する | 16a4ac21-4b45-462d-af18-b8c1e90418a1 | UUID | ○ |
GET /v1/contents/{content_id}
{
"data": {
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"title": "吾輩は猫である",
"description": "吾輩は猫である。名前はまだ無い。",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5",
"authors": [
{
"name": "夏目漱石",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-3",
"size": 1697542,
"uploaded_stamp": 1522132979
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/default.jpg",
"size": 187809,
"uploaded_stamp": 1522132977
}
}
}
自分のコンテンツ一覧取得
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
owner_id | パスパラメータに指定したowner_idが保有するコンテンツを対象とする | 684f9003-8f5d-4ed1-b9de-f2b86fb3c3eb | UUID | ○ |
GET /v1/owners/{owner_id}/contents
{
"data": [
{
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"title": "吾輩は猫である",
"description": "吾輩は猫である。名前はまだ無い。",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5",
"authors": [
{
"name": "夏目漱石",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-3",
"size": 1697542,
"uploaded_stamp": 1522132979
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/default.jpg",
"size": 187809,
"uploaded_stamp": 1522132977
}
},
{
"id": "aa717822-e437-4595-8a11-0d38882789e9",
"title": "人間失格",
"description": "私は、その男の写真を三葉、見たことがある。",
"owner_id": "5fb20d98-b5cf-4e0b-96e2-2fe80fe8b1dc",
"authors": [
{
"name": "太宰治",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-2",
"size": 358508909,
"uploaded_stamp": 1522128276
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/aa717822-e437-4595-8a11-0d38882789e9/default.jpg",
"size": 99954,
"uploaded_stamp": 1522128215
}
}
],
"paging": {
"prev_url": "http://api.root.bricks.pub/v1/contents?before=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9",
"next_url": "http://api.root.bricks.pub/v1/contents?after=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9"
}
}
自分のコンテンツ検索
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
owner_id | パスパラメータに指定したowner_idが保有するコンテンツを対象とする | 684f9003-8f5d-4ed1-b9de-f2b86fb3c3eb | UUID | ○ |
q | 指定した文字列を含むコンテンツを対象とする | サンプル | String | ○ |
GET /v1/owners/{owner_id}/contents/search
{
"data": [
{
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"title": "吾輩は猫である",
"description": "吾輩は猫である。名前はまだ無い。",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5",
"authors": [
{
"name": "夏目漱石",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-3",
"size": 1697542,
"uploaded_stamp": 1522132979
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/default.jpg",
"size": 187809,
"uploaded_stamp": 1522132977
}
},
{
"id": "aa717822-e437-4595-8a11-0d38882789e9",
"title": "人間失格",
"description": "私は、その男の写真を三葉、見たことがある。",
"owner_id": "5fb20d98-b5cf-4e0b-96e2-2fe80fe8b1dc",
"authors": [
{
"name": "太宰治",
"role": "著"
}
],
"file": {
"layout_type": "pre_paginated",
"trial_range": "1-2",
"size": 358508909,
"uploaded_stamp": 1522128276
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/aa717822-e437-4595-8a11-0d38882789e9/default.jpg",
"size": 99954,
"uploaded_stamp": 1522128215
}
}
],
"paging": {
"prev_url": "http://api.root.bricks.pub/v1/contents?before=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9",
"next_url": "http://api.root.bricks.pub/v1/contents?after=eyJsaW1pdCI6NTAsInJlc291cmNlX2lkIjoiZDA1NjE3ZWQtYTdjOC00YmQ1LWExNDAtYjZhNTQ5YzMwYzg0IiwicmVzb3VyY2VfY3JlYXRlZF9hdCI6IjIwMTktMDItMjdUMDA6MzE6MDkuMzcyWiJ9"
}
}
自分のコンテンツ詳細取得
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
owner_id | パスパラメータに指定したowner_idが保有するコンテンツを対象とする | 684f9003-8f5d-4ed1-b9de-f2b86fb3c3eb | UUID | ○ |
content_id | パスパラメータに指定したIDのコンテンツ情報を取得する | 16a4ac21-4b45-462d-af18-b8c1e90418a1 | UUID | ○ |
GET /v1/owners/{owner_id}/contents/{content_id}
{
"data": {
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"title": "吾輩は猫である",
"description": "吾輩は猫である。名前はまだ無い。",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5",
"authors": [
{
"name": "夏目漱石",
"role": "著"
}
],
"file": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_files/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/d4b96078-d9ae-4543-a9aa-c12ba00885d9.pdf?response-content-type=application%2Fforce-download&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJLLXFHCUMKSFOTJA%2F20180808%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20180808T032015Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=d09cf058ddaafda59a5dbfff370d850390c4a45a4ab56185f0c71223fc1f176d",
"layout_type": "pre_paginated",
"trial_range": "1-3",
"size": 1697542,
"uploaded_stamp": 1522132979
},
"image": {
"url": "https://s3.ap-northeast-1.amazonaws.com/root.bricks.pub-staging/content_images/fe74a103-73f7-4ac0-bd4f-0a183c686fc3/default.jpg",
"size": 187809,
"uploaded_stamp": 1522132977
}
}
}
コンテンツ登録
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
owner_id | パスパラメータに指定したowner_idが保有するコンテンツを対象とする | 684f9003-8f5d-4ed1-b9de-f2b86fb3c3eb | UUID | ○ |
title | コンテンツのタイトル | 老舗の流儀 戦後六十年 あの本の新聞広告 | String | ○ |
description | コンテンツの概要 | 話題になったあの本の新聞広告を90点一挙掲載。\nまた、作家・評論家の紀田順一郎氏、幻冬舎社長の見城徹氏らのインタビューにより、戦後の本と、広告の60年を閉じ込めました。広告一つひとつにこめられた広告会社の営業マンの物語や、ベストセラーと広告の関係など、本書でしか読めないエピソードが満載です。 | Text | ○ |
authors | コンテンツの著者一覧 | Array | ○ | |
authors[_].name | 著者名 | 南陀楼綾繁 | String | ○ |
authors[_].role | 役割 著, 訳, 監修, 編集, 表紙, 挿絵など | 著 | String | ○ |
image | コンテンツの画像データ ※ファイルアップロードについてはコンテンツファイルアップロードの項を参照 | Object | ○ | |
image.filename | 画像データのファイル名。主に表紙画像。 JPEG, PNG | image.jpeg | String | ○ |
file | コンテンツの元データ ※ファイルアップロードについてはコンテンツファイルアップロードの項を参照 | Object | ○ | |
file.filename | 書籍データのファイル名 EPUB, PDF, DotBook | ryugi.epub | String | ○ |
file.layout_type | 書籍データの形式 reflowable, pre_paginated ※リフロー型、固定型については以下を参照 ※PDFは固定型で処理 | リフロー型: 固定型: | String | ○ |
file.trial_range | 試し読み範囲の指定 リフロー型:文字列 固定型:ページ番号 ※空文字の場合はエラーになります ※ | リフロー型:
固定型:
| String |
POST /v1/owners/{owner_id}/contents
{
"data": {
"id": "bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe",
"title": "タイトル",
"description": "概要\n概要\n概要",
"owner_id": "2d363704-7923-4826-ac25-6b3128ee6014",
"authors": [
{
"name": "著者名",
"role": "著"
},
{
"name": "著者名",
"role": "訳"
}
],
"file": {
"upload_url": "https://s3-northeast-1.amazonaws.com/flb-root/content_files/bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe/bd177321-8a77-43c9-b041-25e8196c8f15.pdf?x-amz-acl=private&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=dummy_aws_access_key_id%2F20180629%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20180629T031258Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=904b042f39b9270514c35ef2b4400048ccad339781bd18162b39e658f9332eaa",
"layout_type": "pre_paginated",
"trial_range": "1-10",
"size": null,
"uploaded_stamp": null
},
"image": {
"upload_url": "https://s3-northeast-1.amazonaws.com/flb-root/content_images/bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe/default.jpg?x-amz-acl=public-read&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=dummy_aws_access_key_id%2F20180629%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20180629T031258Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=60c4478bfddf53fcbe4ad833f3c3056f960ebfd50d1a52e0b3a39e89c5d52411",
"size": null,
"uploaded_stamp": null
}
}
}
コンテンツファイルアップロード
コンテンツ登録、更新APIのレスポンスに含まれるupload_url
を使用してPUTすることでファイル、画像をAmazon S3にアップロードすることができる。
uploadurl
は15分後に失効します。
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
content_type | ファイルのmime-typeを設定 | EPUB: PDF: JPEG: PNG: | String | ○ |
コンテンツ更新
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
owner_id | パスパラメータに指定したowner_idが保有するコンテンツを対象とする | 684f9003-8f5d-4ed1-b9de-f2b86fb3c3eb | UUID | ○ |
content_id | パスパラメータに指定したIDのコンテンツ情報を取得する | 16a4ac21-4b45-462d-af18-b8c1e90418a1 | UUID | ○ |
title | コンテンツのタイトル | 老舗の流儀 戦後六十年 あの本の新聞広告 | String | |
description | コンテンツの概要 | 話題になったあの本の新聞広告を90点一挙掲載。\nまた、作家・評論家の紀田順一郎氏、幻冬舎社長の見城徹氏らのインタビューにより、戦後の本と、広告の60年を閉じ込めました。広告一つひとつにこめられた広告会社の営業マンの物語や、ベストセラーと広告の関係など、本書でしか読めないエピソードが満載です。 | Text | |
authors | コンテンツの著者一覧 | Array | ||
authors[_].name | 著者名 | 南陀楼綾繁 | String | |
authors[_].role | 役割 著, 訳, 監修, 編集, 表紙, 挿絵など | 著 | String | |
image | コンテンツの画像データ ※ファイルアップロードについてはコンテンツファイルアップロードの項を参照 | Object | ||
image.filename | 画像データのファイル名。主に表紙画像。 JPEG, PNG | image.jpeg | String | |
file | コンテンツの元データ ※ファイルアップロードについてはコンテンツファイルアップロードの項を参照 | Object | ||
file.filename | 書籍データのファイル名 EPUB, PDF, DotBook | ryugi.epub | String | |
file.layout_type | 書籍データの形式 reflowable, pre_paginated ※リフロー型、固定型については以下を参照 ※PDFは固定型で処理 | リフロー型: 固定型: | String | |
file.trial_range | 試し読み範囲の指定 リフロー型:文字列 固定型:ページ番号 ※空文字の場合はエラーになります ※ ※試し読み範囲のみ更新したい場合は、fileパラメータ以下をfile.trial_rangeのみ指定することで更新可能です | リフロー型:
固定型:
| String |
PUT /v1/owners/{owner_id}/contents/{content_id}
{
"data": {
"id": "bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe",
"title": "タイトル",
"description": "概要\n概要\n概要",
"owner_id": "2d363704-7923-4826-ac25-6b3128ee6014",
"authors": [
{
"name": "著者名",
"role": "著"
},
{
"name": "著者名",
"role": "訳"
}
],
"file": {
"upload_url": "https://s3-northeast-1.amazonaws.com/flb-root/content_files/bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe/bd177321-8a77-43c9-b041-25e8196c8f15.pdf?x-amz-acl=private&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=dummy_aws_access_key_id%2F20180629%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20180629T031258Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=904b042f39b9270514c35ef2b4400048ccad339781bd18162b39e658f9332eaa",
"layout_type": "pre_paginated",
"trial_range": "1-10",
"size": null,
"uploaded_stamp": null
},
"image": {
"upload_url": "https://s3-northeast-1.amazonaws.com/flb-root/content_images/bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe/default.jpg?x-amz-acl=public-read&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=dummy_aws_access_key_id%2F20180629%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20180629T031258Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=60c4478bfddf53fcbe4ad833f3c3056f960ebfd50d1a52e0b3a39e89c5d52411",
"size": null,
"uploaded_stamp": null
}
}
}
コンテンツ削除
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
owner_id | パスパラメータに指定したowner_idが保有するコンテンツを対象とする | 684f9003-8f5d-4ed1-b9de-f2b86fb3c3eb | UUID | ○ |
content_id | パスパラメータに指定したIDのコンテンツ情報を取得する | 16a4ac21-4b45-462d-af18-b8c1e90418a1 | UUID | ○ |
DELETE /v1/owners/{owner_id}/contents/{content_id}
権限(Public Brick開発者向け)
権限チェック
パラメーター | 説明 | 例 | データ形式 | 必須 |
---|---|---|---|---|
content_id | パスパラメータに指定したIDのコンテンツ情報を取得する | Array | ○ | |
content_id[_] | コンテンツのID | 16a4ac21-4b45-462d-af18-b8c1e90418a1 | UUID | ○ |
token | コンテンツ利用のチェックに使う確認用トークン ※ Brickを作成すると発行される | CDvXi7F9MPEVHbvm9RJ713ki | String | ○ |
GET /v1/permissions?token={confirmation_token}&content_id[]={content_id}&content_id[]={content_id}
{
"data": {
"16a4ac21-4b45-462d-af18-b8c1e90418a1": {
"id": "16a4ac21-4b45-462d-af18-b8c1e90418a1",
"permitted": true,
"message": "",
},
"bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe": {
"id": "bee9c6cc-4a68-4b61-a93c-79cb9cd4aefe",
"permitted": false,
"message": "テストBrick is not permitted.",
}
}
}
注意事項
FLB ROOTからコンテンツファイルを取得、提供する場合は提供先Brickからconfirmation_token
を取得し権限チェックを行った上でコンテンツの提供をお願いします。
Webhook
イベントの種類
- メタデータの更新 (
meta_updated
) - ファイルの更新 (
file_updated
) - 試し読み範囲のみ更新 (
file_updated
) - 画像の更新 (
image_updated
) - コンテンツの削除 (
content_deleted
)
認証情報
設定できるAuthorization Headerの種類
Basic
Bearer
Digest
リクエスト形式
送信ヘッダ
POST
で送信されますUser-Agent: FLB-ROOT-Webhook/xxxx
が設定されます
Example delivery headers
{
"Content-Type": "application/json",
"Authorization": "Basic Zmw6MDM5MA==",
"User-Agent": "FLB-ROOT-Webhook/e6f89ff"
}
送信ペイロード
resource
に更新されたリソースの種類が設定されますevents
にイベントの種類が設定されますdata
に更新されたリソースの詳細情報が設定されます
Payload
{
"resource": "contents",
"events": [
"meta_updated",
"image_updated",
"file_updated"
],
"data": [
{
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5"
}
]
}
{
"resource": "contents",
"events": [
"deleted"
],
"data": [
{
"id": "fe74a103-73f7-4ac0-bd4f-0a183c686fc3",
"owner_id": "c97835a9-0565-41a1-b8a8-e6943128e1e5"
}
]
}
レスポンス形式
ステータスコード200
を返してください
注意事項
ファイルと画像のアップロード期限
upload_url
が失効すると、ファイル、画像はアップロードされなかったこととしてWebhookが送信されます。
Timeout
Webhookを送信後レスポンスが10秒以内に返ってこない場合、Timeoutとなります。
処理が長くなる場合は、レスポンスを返却後、バックグラウンドで処理することを推奨します。