Saltar al contenido

Headers de media en plantillas

Al crear o editar una plantilla con header de media (IMAGE, VIDEO, GIF, DOCUMENT), tienes cuatro modos mutuamente excluyentes de proveer la media. Aplican solo a headers no-TEXT.

Los cuatro modos

ModoDescripciónCaso de uso
urlURL https pública de la mediaEl archivo ya está hosteado
base64Media codificada en base64 en el bodyTienes los bytes del archivo
handlerHandler de Meta ya existente (4::...)Ya subiste la media antes
fileMultipart con un part file binarioSubida directa desde el cliente
header_source y header_handle son mutuamente excluyentes. Si envías ambos, la API devuelve 400 con header_source and header_handle are mutually exclusive for media headers.

Modo url

{
  "name": "test_img",
  "language": "es",
  "category": "MARKETING",
  "components": [
    {
      "type": "HEADER",
      "format": "IMAGE",
      "example": {
        "header_source": {
          "mode": "url",
          "value": "https://cdn.example.com/banner.jpg"
        }
      }
    },
    {
      "type": "BODY",
      "text": "Mirá nuestra nueva colección {{1}}.",
      "example": { "body_text": [["Primavera"]] }
    }
  ]
}

Modo base64

{
  "type": "HEADER",
  "format": "IMAGE",
  "example": {
    "header_source": {
      "mode": "base64",
      "value": "/9j/4AAQSkZJRgABAQAAAQABAAD/..."
    }
  }
}

Modo handler

{
  "type": "HEADER",
  "format": "IMAGE",
  "example": {
    "header_source": {
      "mode": "handler",
      "value": "4::1234567890"
    }
  }
}

Modo file (multipart)

El request debe ser multipart/form-data con dos parts: template (JSON) y file (binario):

curl --request POST \
  --url 'https://api.chattigo.com/v1/templates/{did}' \
  --header 'Authorization: Bearer <token>' \
  -F 'template={
    "name": "test_img",
    "language": "es",
    "category": "MARKETING",
    "components": [{
      "type": "HEADER",
      "format": "IMAGE",
      "example": { "header_source": { "mode": "file" } }
    }]
  };type=application/json' \
  -F 'file=@/ruta/banner.jpg'

Reglas de validación

ReglaDetalle
HTTPS obligatoriomode=url con http://400
Sin IPs privadasmode=url apuntando a IP privada/loopback → 400 (bloqueado por seguridad)
Límites de tamañoCada categoría tiene un cap configurable (media.upload.max_bytes)
Header TEXT ignora header_sourceSi el header es TEXT, header_source se ignora
file requiere multipartmode=file con application/json400
Faltan partsMultipart sin part template o sin part file400
Multipart bombPart file que excede el cap → 413
GIFSolo Marketing Messages API, MP4, max 3.5MB

Categorías de media y tamaños

FormatoTamaño máximoMIME
IMAGEsegún categoría (configurable)image/*
VIDEOsegún categoría (configurable)video/*
DOCUMENTsegún categoría (configurable)application/*
GIF3.5MBvideo/mp4 (Marketing Messages API)