本文へ移動
Bounty Developer

PUT/api/planning/{eventId}/thumbnail-templates

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

要約

配置に名前を付けてイベントに取っておく・上書きする・消す(layout = null で削除。見本の key は使えない)

呼び方と印

ログイン・レート制限

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

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

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

  • eventIdpath必須string(uuid)

送るもの(本文)application/json

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

  • key必須string
    /^[a-z][a-z0-9_]{0,31}$/
  • name任意string
    長さ 1–40
  • layout必須object | null
  • 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

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

  • eventIdstring(uuid)
  • templatesarray<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
  • event_not_found
  • thumbnail_template_not_found
  • thumbnail_template_reserved
  • too_many_thumbnail_templates

呼び出しの見本

そのまま試せる呼び出しの例。curl と fetch をタブで切り替える。ID やトークンは自分の値に置き換える。

curl -X PUT "https://bounty.spikes.4s.link/api/planning/{eventId}/thumbnail-templates" \
  -H "Authorization: Bearer $BEARER_AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "string",
    "layout": {
      "version": 1,
      "elements": [
        {
          "id": "string",
          "kind": "title",
          "box": {
            "portrait": {
              "x": 0,
              "y": 0,
              "w": 0,
              "h": 0
            },
            "square": {
              "x": 0,
              "y": 0,
              "w": 0,
              "h": 0
            },
            "landscape": {
              "x": 0,
              "y": 0,
              "w": 0,
              "h": 0
            }
          }
        }
      ]
    }
  }'
PUT /api/planning/{eventId}/thumbnail-templates | Bounty Developer