PUT/api/planning/blocks/{contentId}/thumbnail
「コンテンツ企画」の分類の、送った内容で対象を保存する(更新する)API。ログインした本人として呼ぶ。
- 要約
サムネイルのデザインを保存する(テンプレート・テーマ・手で直した改行など。expectedRev が違えば 409)
- 呼び方と印
ログイン・レート制限
短い時間に呼びすぎると断られる API(レート制限)。断られたら Retry-After の秒数を待って呼び直す。
URL に付ける値(パラメータ)
経路の中の波かっこの部分と、URL の ? の後ろに付ける値。「必須」の印があるものは省けない。
contentIdpath必須string(uuid)
送るもの(本文)application/json
送る本文の欄。「必須」の印がある欄は省けない。
expectedRev必須integer≥0template必須enum(9)- "auto"
- "title"
- "solo"
- "duo"
- "panel"
- "featured"
- "many"
- "open_call"
- "custom"
theme必須"tokyo" | "light" | "dark" | "paper"overrides任意object既定 {}titleLines任意array<string>件数 1–8titleScale任意number0.5–1.5speakers任意array<object>件数 ≤12speakerId必須string(uuid)nameLines任意array<string>件数 1–3titleLines任意array<string>件数 1–3scale任意number0.5–1.5speakerOrder任意array<string(uuid)>件数 ≤12featuredSpeakerIds任意array<string(uuid)>件数 ≤12backgroundImageId任意string(uuid) | nullshowOpenCall任意booleancustom任意objectversion必須1elements必須array<object>件数 1–80id必須string/^[a-z][a-z0-9_]{0,31}$/kind必須enum(14)- "title"
- "label"
- "datetime"
- "stage"
- "event"
- "logo"
- "speaker_photo"
- "speaker_name"
- "speaker_title"
- "speaker_company"
- "open_seat"
- "rule"
- …+2
index任意integer0–23box必須objectportrait必須object | nullx必須number0–1y必須number0–1w必須number≤1h必須number≤1square必須object | nullx必須number0–1y必須number0–1w必須number≤1h必須number≤1landscape必須object | nullx必須number0–1y必須number0–1w必須number≤1h必須number≤1align任意"left" | "center" | "right"valign任意"top" | "middle" | "bottom"style任意enum(5)- "display"
- "title"
- "name"
- "body"
- "caption"
color任意enum(9)- "on_background"
- "muted"
- "accent"
- "on_accent"
- "background"
- "surface"
- "rule"
- "strip"
- "on_strip"
fill任意enum(9)- "on_background"
- "muted"
- "accent"
- "on_accent"
- "background"
- "surface"
- "rule"
- "strip"
- "on_strip"
opacity任意number0–1size任意number0.3–4maxLines任意integer1–8fit任意"shrink" | "fixed"
返るもの(応答)200 · application/json
成功したときに返る形。入れ子の欄は、その行を押すと開く・閉じる。「任意」の印がある欄は返らないことがある。
contentIdstring(uuid)contentRevinteger≥0publishedbooleandesignobjecttemplateenum(9)"auto" "title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"theme"tokyo" | "light" | "dark" | "paper"overridesobjecttitleLines任意array<string>件数 1–8titleScale任意number0.5–1.5speakers任意array<object>件数 ≤12speakerIdstring(uuid)nameLines任意array<string>件数 1–3titleLines任意array<string>件数 1–3scale任意number0.5–1.5
speakerOrder任意array<string(uuid)>件数 ≤12featuredSpeakerIds任意array<string(uuid)>件数 ≤12backgroundImageId任意string(uuid) | nullshowOpenCall任意booleancustom任意objectversion1elementsarray<object>件数 1–80idstring/^[a-z][a-z0-9_]{0,31}$/kindenum(14)"title" "label" "datetime" "stage" "event" "logo" "speaker_photo" "speaker_name" "speaker_title" "speaker_company" "open_seat" "rule" …+2index任意integer0–23boxobjectportraitobject | nullxnumber0–1ynumber0–1wnumber≤1hnumber≤1
squareobject | nullxnumber0–1ynumber0–1wnumber≤1hnumber≤1
landscapeobject | nullxnumber0–1ynumber0–1wnumber≤1hnumber≤1
align任意"left" | "center" | "right"valign任意"top" | "middle" | "bottom"style任意enum(5)"display" "title" "name" "body" "caption"color任意enum(9)"on_background" "muted" "accent" "on_accent" "background" "surface" "rule" "strip" "on_strip"fill任意enum(9)"on_background" "muted" "accent" "on_accent" "background" "surface" "rule" "strip" "on_strip"opacity任意number0–1size任意number0.3–4maxLines任意integer1–8fit任意"shrink" | "fixed"
revinteger≥0updatedAtstring(date-time) | null
resolvedTemplateenum(8)"title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"formatsarray<object>keyenum(6)"story" "portrait" "square" "landscape" "classic" "ogp"labelstringusestringwidthintegerheightinteger
templatesarray<object>keyenum(9)"auto" "title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"labelstring
themesarray<object>key"tokyo" | "light" | "dark" | "paper"labelstring
rendersarray<object>formatenum(6)"story" "portrait" "square" "landscape" "classic" "ogp"revinteger≥0widthintegerheightintegerbytesintegercurrentbooleanpreviewPathstringpublicUrlstring | nullcreatedAtstring(date-time)
sourceobjecttitlestringcontentLabelstring | nullformatLabelstringstartsAtstring(date-time) | nullendsAtstring(date-time) | nulltimezonestringstageNamestring | nulleventNamestring | nullopenCallbooleanopenSeatsinteger≥0speakersarray<object>speakerIdstring(uuid)namestringtitlestring | nullcompanystring | nullphotoUrlstring | nullroleenum(5)"speaker" "moderator" "host" "judge" "lt"featuredboolean
layoutsarray<object>formatenum(6)"story" "portrait" "square" "landscape" "classic" "ogp"family"portrait" | "square" | "landscape"widthintegerheightintegertemplateenum(8)"title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"titleLinesarray<string>titleSizenumberelementsarray<object>idstringkind"text" | "image" | "shape"rolestringxnumberynumberwnumberhnumberlines任意array<string>size任意numberspeakerId任意string(uuid)
issuesarray<object>codeenum(6)"overflow" "outside" "below_floor" "overlap" "truncated" "empty"targetstringdetailstring
warningsarray<object>codestringmessagestringtarget任意string
authoringobjectfamiliesarray<object>key"portrait" | "square" | "landscape"formatsarray<enum(6)>
elementKindsarray<object>keyenum(14)"title" "label" "datetime" "stage" "event" "logo" "speaker_photo" "speaker_name" "speaker_title" "speaker_company" "open_seat" "rule" …+2indexedbooleantextboolean
textRolesarray<object>keyenum(5)"display" "title" "name" "body" "caption"labelstring
colorRolesarray<object>keyenum(9)"on_background" "muted" "accent" "on_accent" "background" "surface" "rule" "strip" "on_strip"labelstring
limitsobjectelementsinteger≥0maxLinesinteger≥0sizeMinnumbersizeMaxnumbereventTemplatesinteger≥0
eventTemplatesarray<object>keystring/^[a-z][a-z0-9_]{0,31}$/namestring長さ 1–40layoutobjectversion1elementsarray<object>件数 1–80idstring/^[a-z][a-z0-9_]{0,31}$/kindenum(14)"title" "label" "datetime" "stage" "event" "logo" "speaker_photo" "speaker_name" "speaker_title" "speaker_company" "open_seat" "rule" …+2index任意integer0–23boxobjectportraitobject | nullxnumber0–1ynumber0–1wnumber≤1hnumber≤1
squareobject | nullxnumber0–1ynumber0–1wnumber≤1hnumber≤1
landscapeobject | nullxnumber0–1ynumber0–1wnumber≤1hnumber≤1
align任意"left" | "center" | "right"valign任意"top" | "middle" | "bottom"style任意enum(5)"display" "title" "name" "body" "caption"color任意enum(9)"on_background" "muted" "accent" "on_accent" "background" "surface" "rule" "strip" "on_strip"fill任意enum(9)"on_background" "muted" "accent" "on_accent" "background" "surface" "rule" "strip" "on_strip"opacity任意number0–1size任意number0.3–4maxLines任意integer1–8fit任意"shrink" | "fixed"
starterbooleanupdatedAtstring(date-time) | null
失敗したとき(エラー)
失敗したときの状態コードと、その意味。本文の error の値で、プログラムが失敗の種類を見分けられる。
- 400入力の誤り(error = invalid_input など)
- 401未ログイン(unauthorized)/ Bearer が無効(invalid_token。WWW-Authenticate 付き)
- 403権限が無い
- 404HTTP 404(x-bounty-error-codes を参照)
- 409HTTP 409(x-bounty-error-codes を参照)
- 415HTTP 415(x-bounty-error-codes を参照)
- 428HTTP 428(x-bounty-error-codes を参照)
- 429レート制限(Retry-After 付き)
- 501HTTP 501(x-bounty-error-codes を参照)
- unauthorized
- forbidden
- invalid_input
- invalid_origin
- consent_required
- content_not_found
- published_content_locked
- revision_conflict
- speaker_not_linked
- image_not_found
呼び出しの見本
そのまま試せる呼び出しの例。curl と fetch をタブで切り替える。ID やトークンは自分の値に置き換える。
curl -X PUT "https://bounty.spikes.4s.link/api/planning/blocks/{contentId}/thumbnail" \
-H "Authorization: Bearer $BEARER_AUTH" \
-H "Content-Type: application/json" \
-d '{
"expectedRev": 0,
"template": "auto",
"theme": "tokyo"
}'