本文へ移動
Bounty Developer

PUT/api/planning/blocks/{contentId}/thumbnail

「コンテンツ企画」の分類の、送った内容で対象を保存する(更新する)API。ログインした本人として呼ぶ。

要約

サムネイルのデザインを保存する(テンプレート・テーマ・手で直した改行など。expectedRev が違えば 409)

呼び方と印

ログイン・レート制限

短い時間に呼びすぎると断られる API(レート制限)。断られたら Retry-After の秒数を待って呼び直す。

URL に付ける値(パラメータ)

経路の中の波かっこの部分と、URL の ? の後ろに付ける値。「必須」の印があるものは省けない。

  • contentIdpath必須string(uuid)

送るもの(本文)application/json

送る本文の欄。「必須」の印がある欄は省けない。

  • expectedRev必須integer
    ≥0
  • template必須enum(9)
    • "auto"
    • "title"
    • "solo"
    • "duo"
    • "panel"
    • "featured"
    • "many"
    • "open_call"
    • "custom"
  • theme必須"tokyo" | "light" | "dark" | "paper"
  • overrides任意object
    既定 {}
  • titleLines任意array<string>
    件数 1–8
  • titleScale任意number
    0.5–1.5
  • speakers任意array<object>
    件数 ≤12
  • speakerId必須string(uuid)
  • nameLines任意array<string>
    件数 1–3
  • titleLines任意array<string>
    件数 1–3
  • scale任意number
    0.5–1.5
  • speakerOrder任意array<string(uuid)>
    件数 ≤12
  • featuredSpeakerIds任意array<string(uuid)>
    件数 ≤12
  • backgroundImageId任意string(uuid) | null
  • showOpenCall任意boolean
  • custom任意object
  • version必須1
  • elements必須array<object>
    件数 1–80
  • id必須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任意integer
    0–23
  • box必須object
  • portrait必須object | null
  • x必須number
    0–1
  • y必須number
    0–1
  • w必須number
    ≤1
  • h必須number
    ≤1
  • square必須object | null
  • x必須number
    0–1
  • y必須number
    0–1
  • w必須number
    ≤1
  • h必須number
    ≤1
  • landscape必須object | null
  • x必須number
    0–1
  • y必須number
    0–1
  • w必須number
    ≤1
  • h必須number
    ≤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任意number
    0–1
  • size任意number
    0.3–4
  • maxLines任意integer
    1–8
  • fit任意"shrink" | "fixed"

返るもの(応答)200 · application/json

成功したときに返る形。入れ子の欄は、その行を押すと開く・閉じる。「任意」の印がある欄は返らないことがある。

  • contentIdstring(uuid)
  • contentRevinteger≥0
  • publishedboolean
  • designobject
    • templateenum(9)"auto" "title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"
    • theme"tokyo" | "light" | "dark" | "paper"
    • overridesobject
      • titleLines任意array<string>件数 1–8
      • titleScale任意number0.5–1.5
      • speakers任意array<object>件数 ≤12
        • speakerIdstring(uuid)
        • nameLines任意array<string>件数 1–3
        • titleLines任意array<string>件数 1–3
        • scale任意number0.5–1.5
      • speakerOrder任意array<string(uuid)>件数 ≤12
      • featuredSpeakerIds任意array<string(uuid)>件数 ≤12
      • backgroundImageId任意string(uuid) | null
      • showOpenCall任意boolean
      • custom任意object
        • version1
        • elementsarray<object>件数 1–80
          • idstring/^[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" …+2
          • index任意integer0–23
          • boxobject
            • portraitobject | null
              • xnumber0–1
              • ynumber0–1
              • wnumber≤1
              • hnumber≤1
            • squareobject | null
              • xnumber0–1
              • ynumber0–1
              • wnumber≤1
              • hnumber≤1
            • landscapeobject | null
              • xnumber0–1
              • ynumber0–1
              • wnumber≤1
              • hnumber≤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–1
          • size任意number0.3–4
          • maxLines任意integer1–8
          • fit任意"shrink" | "fixed"
    • revinteger≥0
    • updatedAtstring(date-time) | null
  • resolvedTemplateenum(8)"title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"
  • formatsarray<object>
    • keyenum(6)"story" "portrait" "square" "landscape" "classic" "ogp"
    • labelstring
    • usestring
    • widthinteger
    • heightinteger
  • 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≥0
    • widthinteger
    • heightinteger
    • bytesinteger
    • currentboolean
    • previewPathstring
    • publicUrlstring | null
    • createdAtstring(date-time)
  • sourceobject
    • titlestring
    • contentLabelstring | null
    • formatLabelstring
    • startsAtstring(date-time) | null
    • endsAtstring(date-time) | null
    • timezonestring
    • stageNamestring | null
    • eventNamestring | null
    • openCallboolean
    • openSeatsinteger≥0
    • speakersarray<object>
      • speakerIdstring(uuid)
      • namestring
      • titlestring | null
      • companystring | null
      • photoUrlstring | null
      • roleenum(5)"speaker" "moderator" "host" "judge" "lt"
      • featuredboolean
  • layoutsarray<object>
    • formatenum(6)"story" "portrait" "square" "landscape" "classic" "ogp"
    • family"portrait" | "square" | "landscape"
    • widthinteger
    • heightinteger
    • templateenum(8)"title" "solo" "duo" "panel" "featured" "many" "open_call" "custom"
    • titleLinesarray<string>
    • titleSizenumber
    • elementsarray<object>
      • idstring
      • kind"text" | "image" | "shape"
      • rolestring
      • xnumber
      • ynumber
      • wnumber
      • hnumber
      • lines任意array<string>
      • size任意number
      • speakerId任意string(uuid)
    • issuesarray<object>
      • codeenum(6)"overflow" "outside" "below_floor" "overlap" "truncated" "empty"
      • targetstring
      • detailstring
    • warningsarray<object>
      • codestring
      • messagestring
      • target任意string
  • authoringobject
    • familiesarray<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" …+2
      • indexedboolean
      • textboolean
    • 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
    • limitsobject
      • elementsinteger≥0
      • maxLinesinteger≥0
      • sizeMinnumber
      • sizeMaxnumber
      • eventTemplatesinteger≥0
  • eventTemplatesarray<object>
    • keystring/^[a-z][a-z0-9_]{0,31}$/
    • namestring長さ 1–40
    • layoutobject
      • version1
      • elementsarray<object>件数 1–80
        • idstring/^[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" …+2
        • index任意integer0–23
        • boxobject
          • portraitobject | null
            • xnumber0–1
            • ynumber0–1
            • wnumber≤1
            • hnumber≤1
          • squareobject | null
            • xnumber0–1
            • ynumber0–1
            • wnumber≤1
            • hnumber≤1
          • landscapeobject | null
            • xnumber0–1
            • ynumber0–1
            • wnumber≤1
            • hnumber≤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–1
        • size任意number0.3–4
        • maxLines任意integer1–8
        • fit任意"shrink" | "fixed"
    • starterboolean
    • updatedAtstring(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"
  }'
PUT /api/planning/blocks/{contentId}/thumbnail | Bounty Developer