Tilda API

Integración automática del proyecto Tilda con su propio sitio web
Todas las solicitudes se envían utilizando el método GET y la respuesta se devuelve en formato JSON.

La respuesta correcta es:
{
  "status": "FOUND",
  ...
}
La respuesta de error es:
{
  "status": "ERROR",
  ...
}
El número de solicitudes es limitado: 150 por hora.
API se utiliza para sincronizar el contenido creado en Tilda con su sitio web. Está prohibido solicitar al servidor Tilda que recupere datos por cada visita de un usuario a su sitio web.

Todo el contenido debe guardarse en su servidor (incluidas imágenes, scripts y estilos) antes de poder distribuirlo a los usuarios. Si crea carga enviando constantemente peticiones a los servidores API de Tilda , su cuenta puede ser bloqueada y la función API desactivada.

Si el algoritmo de sincronización está bien organizado, debería haber 1-3 peticiones, por lo tanto, 150 peticiones al servidor por hora son más que suficientes. No debería haber peticiones después de la sincronización hasta que haya cambiado algo en la página, en este caso, tendrá que sincronizar la información de nuevo.
Cómo empezar
Tenga en cuenta que la función API sólo está disponible para los suscriptores del plan Business de Tilda . Para empezar, necesitas obtener una Clave Pública y una Clave Secreta. Puede obtenerlas en la sección API de Tilda: Configuración del sitio → Exportar → Integración API.
Lista de solicitudes
Lista de proyectos
/v1/getprojectslist

Información sobre proyectos
/v1/obtenerinformaciónsobreproyectos

Lista de páginas de proyectos
/v1/getpageslist

Información de la página (+ body html-code)
/v1/getpage

Información de la página (+ código html fullpage)
/v1/getpagefull

Información de la página para exportar (+ body html-code)
/v1/getpageexport

Información completa de la página para exportar (+ código html de la página completa)
/v1/getpagefullexport
Las URL para todas las solicitudes: https://api.tildacdn.info
En cada solicitud, debe enviar las variables: publickey y secretkey, y opcionalmente, dependiendo de la solicitud, projectid o pageid.
Puede establecer los valores de ruta para las imágenes(export_imgpath), los archivos JS(export_jspath) y los archivos CSS(export_csspath) en la pestaña Exportar de los Ajustes del sitio de cada proyecto.
Por lo tanto, puede especificar rutas relativas o absolutas a los archivos que se almacenarán en su servidor si desea crear copias exactas de las páginas en su servidor.
Obtener la lista de proyectos
GET Request URL:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
URL de solicitud GET:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": [
    {
      "id": "0",
      "title": "First Project",
      "descr": "Some info"
    },
    {
      "id": "1",
      "title": "Second Project",
      "descr": ""
    },
    ...
  ]
}
Obtener información sobre el proyecto:
GET Request URL:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL de solicitud GET:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": {
    "id": "0",
    "title": "Project title",
    "descr": "",
    "customdomain": "project.com",
    "export_csspath": "",
    "export_jspath": "",
    "export_imgpath": "",
    "indexpageid": "0",
    "customcsstext": "y",
    "favicon": "",
    "page404id": "0",
    "images": [
      {
        "from": "",
        "to": ""
      }
      ...
    ]
  }
}
Para obtener una muestra del archivo de configuración de su servidor web, añada el parámetro webconfig con el valor htaccess o nginx a la URL de la solicitud.

Si utiliza nginx, deberá añadir la muestra recibida en la sección del servidor del archivo de configuración de su servidor web.
Obtener la lista de páginas del proyecto
GET Request URL:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL de solicitud GET:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": [
    {
      "id": "1001",
      "projectid": "0",
      "title": "Page title first",
      "descr": "",
      "img": "",
      "featureimg": "",
      "alias": "",
      "date": "2014-05-16 14:45:53",
      "sort": "80",
      "published": "1419702868",
      "filename": "page1001.html"
    },
    {
      "id": "1002",
      "projectid": "0",
      "title": "Page title second",
      "descr": "",
      "img": "",
      "featureimg": "",
      "alias": "",
      "date": "2014-05-17 10:50:00",
      "sort": "90",
      "published": "1419702277",
      "filename": "page1002.html"
    },
    ...
  ]
}
Obtención de la información de la página
+ código HTML del cuerpo
GET Request URL:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitud GET:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Page title",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "date": "2014-05-16 14:45:53",
    "sort": "80",
    "published": "1419702868",
    "html": "some html page code",
    "filename": "page1001.html",
    "js": [
      ...
    ],
    "css": [
      ...
    ]
  }
}
Obtener la información de la página
+ código HTML completo
GET Request URL:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitud GET:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Page title",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "date": "2014-05-16 14:45:53",
    "sort": "80",
    "published": "1419702868",
    "html": "some html page code",
    "filename": "page1001.html"
  }
}
Obtención de la información de la página para exportar
+ código HTML del cuerpo de la página
GET Request URL:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitud GET:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Page title",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "date": "2014-05-16 14:45:53",
    "sort": "80",
    "published": "1419702868",
    "images": [
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      }
    ],
    "js": [
      {
        "from": "",
        "to": "",
        "attrs": [
          "async"
        ]
      },
      {
        "from": "",
        "to": "",
        "attrs": [
          "defer"
        ]
      },
      {
        "from": "",
        "to": "",
        "attrs": [
          "nomodule"
        ]
      }
    ],
    "html": "body page html-code with local links to files",
    "filename": "page1001.html"
  }
}
Importante: Le recomendamos que descargue y mantenga actualizados los archivos estáticos de la página (scripts y estilos) cada vez que utilice esta solicitud. Estos archivos cambian constantemente, y no puedes comprobar si los archivos están actualizados a través de la API.
Obtener la información de la página para exportar
+ código HTML de la página completa
GET Request URL:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitud GET:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Respuesta en formato JSON:
{
  "status": "FOUND",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Page title",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "date": "2014-05-16 14:45:53",
    "sort": "80",
    "published": "1419702868",
    "images": [
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      }
    ],
    "html": "full page html-code with local links to files",
    "filename": "page1001.html"
  }
}
Importante: Le recomendamos que descargue y mantenga actualizados los archivos estáticos de la página (scripts y estilos) cada vez que utilice esta solicitud. Estos archivos cambian constantemente, y no puedes comprobar si los archivos están actualizados a través de la API.
Webhook (o devolución de llamada)
La sincronización puede realizarse automáticamente. Para ello, especifique la URL del script donde se enviará una solicitud con notificación cada vez que pulse el botón "Publicar". De esta forma podrá actualizar contenidos, así como añadir nuevas páginas en su servidor.

Puede especificar el enlace al webhook en la sección API de su proyecto: Ajustes del sitio → Exportar → Integración API:
La notificación se envía utilizando el método GET .
Parámetros: pageid, projectid, published, publickey

Su webhook debe confirmar que la solicitud fue recibida. La respuesta esperada a la petición con éxito es "ok"
(En PHP solo echo "ok";)

Si el servidor Tilda no recibe la respuesta esperada, habrá 2 intentos más de repetir la petición a tu servidor (3 peticiones en total).

La petición puede ser enviada no de una vez, sino con un retraso de 1 a 20 min después de publicar la página. Por lo tanto, si la solicitud no se envía inmediatamente, debe comprobar que no se ha enviado en el plazo especificado.
Importante: El tiempo máximo de espera de respuesta de su servidor es de 5 segundos. Si no se recibe la respuesta, se interrumpe la conexión. Por eso debe guardar esta notificación y luego realizar la sincronización, por ejemplo, mediante cron. Normalmente, si tiene muchas imágenes en la página, este tiempo no es suficiente.

cómo
Ejemplos de uso
Hay dos escenarios comunes para el uso de la API Tilda : Si necesita automatizar la exportación y el guardado de todos los archivos del proyecto en su servidor, y si necesita integrar páginas creadas en Tilda con las plantillas de su sitio web.
Cómo exportar todas las páginas del proyecto
Nuestro objetivo es guardar el proyecto publicado en nuestra cuenta Tilda en nuestro servidor local.
  • En la pestaña Exportar de la Configuración del sitio, especifique las rutas para las imágenes, los archivos JS y los archivos CSS, como /images, /js y /css;
  • Recuerde el projectid del proyecto que necesita;
  • Cree un script en su servidor: enviará solicitudes a la API, creará archivos y guardará información en estos archivos;
  • Crea carpetas en el servidor a las que copiarás los archivos (imágenes, js, css).
  1. Obtenga información sobre el proyecto que necesita enviando la solicitud getprojectinfo .
  2. Recorre el array de imágenes que has recibido en la respuesta a la petición. En él hay una lista de archivos. Puedes encontrar la dirección de origen del archivo en la variable from y el nombre local que necesitas usar para guardar el archivo en la variable to. Copie los archivos donde sea necesario. Estos archivos son comunes para todas las páginas del proyecto.
  3. Si ha añadido el parámetro webconfig a la solicitud anterior, debe crear un archivo.htaccess y rellenarlo con el valor de la variable webconfig o guardar este valor en la sección del servidor del archivo de configuración de su servidor web nginx.
  4. Obtener la lista de todas las páginas de nuestro proyecto enviando la petición getpageslist.
  5. Recorra en bucle la lista de páginas que ha recibido. Para cada página:
  • Obtenga la información de la página para exportar enviando la petición getpagefullexport;
  • Guarda en el servidor las imágenes, scripts y estilos utilizados en la página desde las matrices images, js y css;
  • Cree un nuevo archivo de página (utilizando el nombre de la variable filename ) y rellénelo con el valor de la variable html.

Si su objetivo es integrar páginas de Tilda en su plantilla (que ya tiene la cabecera, el menú, el pie de página, etc.), siga los mismos pasos pero utilice la opción getpageexport solicitud. Devuelve el código HTML del cuerpo que puede pegar en el área de contenido de su plantilla. Tenga en cuenta que, en este caso, deberá añadir manualmente scripts y estilos en la plantilla.
Integración sin copiar imágenes y archivos JS / CSS

Si tu proyecto no está muy cargado y no quieres guardar archivos estáticos en tu servidor, utiliza la petición getpage que devuelve el código HTML del cuerpo. Las imágenes se cargarán desde el servidor Tilda . Lo principal es recordar añadir archivos JS y CSS a tu plantilla. La lista de estos archivos se devuelve en las variables js y css de la respuesta a la petición.

Un ejemplo de una petición sencilla utilizando PHP:
$result = file_get_contents('https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0');
$proyecto = json_decode($resultado, true);
print_r($proyecto);
De conformidad con el Acuerdo de condiciones de servicio de Tilda, si utiliza la función de exportación de la API, deberá proporcionar el identificador "Made on Tilda" con un enlace a https://tilda.cc como fuente en cada página exportada.
Hecho en
Tilda