API Tilda

Integração automática de projetos Tilda com seu próprio site
Todas as requisições são enviadas usando o método GET e a resposta é retornada no formato JSON.

A resposta bem-sucedida é:
{
  "status": "ENCONTRADO",
  ...
}
A resposta de erro é:
{
  "status": "ERRO",
  ...
}
Há um limite para o número de solicitações: 150 por hora.
A API é usada para sincronizar o conteúdo criado no Tilda com seu site. É proibido solicitar ao servidor Tilda a recuperação de dados de cada visita do usuário ao seu site.

Todo o conteúdo deve ser salvo no servidor (incluindo imagens, scripts e estilos) antes de poder ser distribuído aos usuários. Se você criar carga enviando constantemente solicitações para Tilda servidores de API, sua conta poderá ser bloqueada e o recurso de API será desativado.

Se o algoritmo de sincronização estiver bem organizado, deve haver de 1 a 3 solicitações, portanto, 150 solicitações ao servidor por hora são mais que suficientes. Não deve haver requisições após a sincronização até que você altere algo na página, neste caso, você terá que sincronizar as informações novamente.
Como começar
Observe que o recurso API só está disponível para assinantes do Plano Tilda Business. Para começar, você precisa obter uma Chave Pública e uma Chave Secreta. Você pode obtê-los na seção API em Tilda: Configurações do Site → Exportar → Integração de API.
Lista de Solicitações
Lista de projetos
/v1/getprojectslist

Informações do projeto
/v1/getprojectinfo

Lista de páginas do projeto
/v1/getpageslist

Informações da página (+ corpo html-code)
/v1/getpage

Informações da página (+ código html de página inteira)
/v1/getpagefull

Informações da página para exportação (+ body html-code)
/v1/getpageexport

Informações completas da página para exportação (+ código html de página inteira)
/v1/getpagefullexport
As URLs de todas as solicitações: https://api.tildacdn.info
Em cada solicitação, você precisa enviar variáveis: publickey e secretkey e, opcionalmente, dependendo da solicitação, projectid ou pageid.
Você pode definir os valores de caminho para imagens (export_imgpath), arquivos JS (export_jspath) e arquivos CSS (export_csspath) na guia Exportar de Configurações do Site de cada projeto.
Portanto, você pode especificar caminhos relativos ou absolutos para os arquivos que serão armazenados no servidor se desejar criar cópias exatas de páginas no servidor.
Obtendo a lista de projetos
URL da solicitação GET:
https://api.tildacdn.info/v1/ getprojectslist/?publickey=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
URL de solicitação GET:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": [
    {
      "id": "0",
      "title": "Primeiro Projeto",
      "descr": "Algumas informações"
    },
    {
      "id": "1",
      "title": "Segundo Projeto",
      "descr": ""
    },
    ...
  ]
}
Obtendo informações do projeto:
URL da solicitação GET:
https://api.tildacdn.info/v1/ getprojectinfo/?publickey=0000000000000000000000000&secretkey=00000000000000000000&projectid=0
URL de solicitação GET:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": {
    "id": "0",
    "title": "Título do projecto",
    "descr": "",
    "customdomain": "project.com",
    "export_csspath": "",
    "export_jspath": "",
    "export_imgpath": "",
    "indexpageid": "0",
    "customcsstext": "y",
    "favicon": "",
    "page404id": "0",
    "imagens": [
      {
        "de": "",
        "para": ""
      }
      ...
    ]
  }
}
Para obter uma amostra do arquivo de configuração do seu servidor Web, adicione o parâmetro webconfig com o valor htaccess ou nginx à URL de solicitação.

Se você usar nginx, precisará adicionar a amostra recebida à seção de servidor do arquivo de configuração do servidor Web.
Obtendo a lista de páginas do projeto
URL da solicitação GET:
https://api.tildacdn.info/v1/ getpageslist/?publickey=0000000000000000000000000&secretkey=0000000000000000000000&projectid=0
URL de solicitação GET:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": [
    {
      "id": "1001",
      "projectid": "0",
      "title": "Título da página primeiro",
      "descr": "",
      "img": "",
      "featureimg": "",
      "alias": "",
      "data": "2014-05-16 14:45:53",
      "sort": "80",
      "publicado": "1419702868",
      "filename": "page1001.html"
    },
    {
      "id": "1002",
      "projectid": "0",
      "title": "Título da página em segundo lugar",
      "descr": "",
      "img": "",
      "featureimg": "",
      "alias": "",
      "data": "2014-05-17 10:50:00",
      "sort": "90",
      "publicado": "1419702277",
      "filename": "page1002.html"
    },
    ...
  ]
}
Obtendo as informações da página
+ corpo do código HTML
URL da solicitação GET:
https://api.tildacdn.info/v1/ getpage/?publickey=000000000000000000000000&secretkey=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
URL de solicitação GET:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": {
    "id": "1001",
    "projectid": "0",
    "title": "Título da página",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "data": "2014-05-16 14:45:53",
    "sort": "80",
    "publicado": "1419702868",
    "html": "algum código de página html",
    "nome do arquivo": "page1001.html",
    "js": [
      ...
    ],
    "css": [
      ...
    ]
  }
}
Obtendo as informações da página
+ código HTML completo
URL da solicitação GET:
https://api.tildacdn.info/v1/ getpagefull/?publickey=0000000000000000000000000&secretkey=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
URL de solicitação GET:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": {
    "id": "1001",
    "projectid": "0",
    "title": "Título da página",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "data": "2014-05-16 14:45:53",
    "sort": "80",
    "publicado": "1419702868",
    "html": "algum código de página html",
    "filename": "page1001.html"
  }
}
Obtendo as informações da página para exportação
+ código HTML da página do corpo
URL da solicitação GET:
https://api.tildacdn.info/v1/ getpageexport/?publickey=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
URL de solicitação GET:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": {
    "id": "1001",
    "projectid": "0",
    "title": "Título da página",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "data": "2014-05-16 14:45:53",
    "sort": "80",
    "publicado": "1419702868",
    "imagens": [
      {
        "de": "",
        "para": ""
      },
      {
        "de": "",
        "para": ""
      },
      {
        "de": "",
        "para": ""
      }
    ],
    "html": "código html da página do corpo com links locais para arquivos",
    "filename": "page1001.html"
  }
}
Importante: Recomendamos que você baixe e mantenha atualizados os arquivos estáticos de página (scripts e estilos) sempre que usar essa solicitação. Esses arquivos estão mudando constantemente e você não pode verificar se os arquivos são atualizados por meio da API.
Obtendo as informações da página para exportação
+ código HTML de página inteira
URL da solicitação GET:
https://api.tildacdn.info/v1/ getpagefullexport/?publickey=000000000000000000000000&secretkey=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
URL de solicitação GET:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no formato JSON:
{
  "status": "ENCONTRADO",
  "resultado": {
    "id": "1001",
    "projectid": "0",
    "title": "Título da página",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "data": "2014-05-16 14:45:53",
    "sort": "80",
    "publicado": "1419702868",
    "imagens": [
      {
        "de": "",
        "para": ""
      },
      {
        "de": "",
        "para": ""
      },
      {
        "de": "",
        "para": ""
      }
    ],
    "html": "código html de página inteira com links locais para arquivos",
    "filename": "page1001.html"
  }
}
Importante: Recomendamos que você baixe e mantenha atualizados os arquivos estáticos de página (scripts e estilos) sempre que usar essa solicitação. Esses arquivos estão mudando constantemente e você não pode verificar se os arquivos são atualizados por meio da API.
Webhook (ou retorno de chamada)
A sincronização pode ser executada automaticamente. Para fazer isso, especifique a URL do script para onde uma solicitação com notificação será enviada sempre que você clicar no botão "Publicar". Desta forma, você pode atualizar o conteúdo, bem como adicionar novas páginas em seu servidor.

Você pode especificar o link para o webhook na seção API do seu projeto: Configurações do Site → Exportar → Integração de API:
A notificação é enviada usando o método GET .
Parâmetros: pageid, projectid, published, publickey

Seu webhook deve confirmar que a solicitação foi recebida. A resposta esperada para a solicitação bem-sucedida é "ok"
(Em PHP basta ecoar "ok";)

Se o servidor Tilda não obtiver a resposta esperada, haverá mais 2 tentativas de repetir a solicitação ao servidor (3 solicitações no total).

A solicitação pode ser enviada não de uma só vez, mas com um atraso de 1 a 20 minutos após a publicação da página. Portanto, se a solicitação não veio de uma vez, você precisa verificar se ela não veio dentro do período de tempo especificado.
Importante: O tempo máximo de espera de resposta do servidor é de 5 segundos. Se a resposta não for recebida, a conexão será descartada. É por isso que você deve salvar essa notificação e, em seguida, executar a sincronização, via cron, por exemplo. Normalmente, se você tem muitas imagens na página, esse tempo não é suficiente.

como
Exemplos de cenários de uso
Há dois cenários comuns para usar a API do Tilda: se você precisar automatizar a exportação e salvar todos os arquivos de projeto em seu servidor e se precisar integrar páginas criadas em Tilda com seus modelos de site.
Como exportar todas as páginas do projeto
Nosso objetivo é salvar o projeto publicado em nossa conta Tilda em nosso servidor local.
  • Na guia Exportar das Configurações do site, especifique os caminhos para imagens, arquivos JS e arquivos CSS, como /images, /js e /css;
  • Lembre-se do projectid do projeto que você precisa;
  • Crie um script em seu servidor — ele enviará solicitações para a API, criará arquivos e salvará informações nesses arquivos;
  • Crie pastas no servidor para as quais você copiará os arquivos (imagens, js, css).
  1. Obtenha informações sobre o projeto que você precisa enviando a solicitação getprojectinfo .
  2. Faça um loop pela matriz de imagens que você recebeu na resposta da solicitação. Há uma lista de arquivos nele. Você pode encontrar o endereço de origem do arquivo na variável from e o nome local que você precisa usar para salvar o arquivo na variável to . Copie os arquivos onde você precisa. Esses arquivos são comuns para todas as páginas do projeto.
  3. Se você tiver adicionado o parâmetro webconfig à solicitação anterior, será necessário criar um arquivo . htaccess e preenchê-lo com o valor da variável webconfig ou salve esse valor na seção do servidor do arquivo de configuração do seu servidor web nginx .
  4. Obtenha a lista de todas as páginas do nosso projeto enviando a solicitação getpageslist .
  5. Percorra a lista de páginas que você recebeu. Para cada página:
  • Obtenha as informações da página para exportação enviando a solicitação getpagefullexport ;
  • Salve imagens, scripts e estilos usados na página das matrizes images, js e css no servidor;
  • Crie um novo arquivo de paginação (usando o nome da variável filename ) e preencha-o com o valor da variável html.

Se o seu objetivo é integrar páginas de Tilda ao seu modelo (que já tem o cabeçalho, menu, rodapé, etc.), siga os mesmos passos, mas use ogetpageexportsolicitar. Ele retorna o código HTML do corpo que você pode colar na área de conteúdo do seu modelo. Observe que, neste caso, você precisa adicionar scripts e estilos no modelo manualmente.
Integração sem copiar imagens e arquivos JS/CSS

Se o projeto não estiver muito carregado e você não quiser salvar arquivos estáticos no servidor, use a solicitação getpage que retorna o código HTML do corpo. As imagens serão carregadas do servidor Tilda. O principal é lembrar de adicionar arquivos JS e CSS ao seu modelo. A lista desses arquivos é retornada em variáveis js e css de resposta de solicitação.

Um exemplo de uma solicitação simples usando PHP:
$result = file_get_contents('https://api.tildacdn.info/v1/getprojectinfo/?publickey=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&projectid=0');
$project = json_decode($result, verdadeiro);
print_r($project);
De acordo com o Contrato de Termos de Serviço da Tilda, se você usar o recurso de exportação da API, precisará fornecer o identificador "Made on Tilda" com um link para https://tilda.cc como fonte em cada página exportada.
Feito em
Tilda