Tilda API

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

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

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

Se o algoritmo de sincronização estiver bem organizado, deverá haver de 1 a 3 solicitações; portanto, 150 solicitações ao servidor por hora são mais do que suficientes. Não deve haver solicitações após a sincronização até que você tenha alterado algo na página; nesse caso, será necessário sincronizar as informações novamente.
Como começar
Observe que o recurso de API está disponível somente para assinantes do Plano Comercial Tilda . Para começar, você precisa obter uma chave pública e uma chave secreta. Você pode obtê-las na seção API em Tilda: Site Settings → Export → API Integration.
Lista de solicitações
Lista de projetos
/v1/getprojectslist

Informações sobre o projeto
/v1/getprojectinfo

Lista de páginas de projetos
/v1/getpageslist

Informações sobre a página (+ código html do corpo)
/v1/getpage

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

Informações da página para exportação (+ código html do corpo)
/v1/getpageexport

Informações completas da página para exportação (+ código html da página inteira)
/v1/getpagefullexport
Os URLs para todas as solicitações: https://api.tildacdn.info
Em cada solicitação, você precisa enviar as 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 das 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 quiser criar cópias exatas das páginas no servidor.
Obtendo a lista de projetos
GET Request URL:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
URL de solicitação GET:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Resposta no formato JSON:
{
  "status": "FOUND",
  "result": [
    {
      "id": "0",
      "title": "First Project",
      "descr": "Some info"
    },
    {
      "id": "1",
      "title": "Second Project",
      "descr": ""
    },
    ...
  ]
}
Obtendo informações sobre o projeto:
GET Request URL:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&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": "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 obter uma amostra do arquivo de configuração do servidor da Web, adicione o parâmetro webconfig com o valor htaccess ou nginx ao URL da solicitação.

Se você usar nginx, precisará adicionar a amostra recebida à seção do servidor do arquivo de configuração do servidor da Web.
Obtendo a lista de páginas do projeto
GET Request URL:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL de solicitação GET:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Resposta no 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"
    },
    ...
  ]
}
Obtendo as informações da página
+ código HTML do corpo
GET Request URL:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitação GET:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no 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": [
      ...
    ]
  }
}
Obtendo as informações da página
+ código HTML completo
GET Request URL:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitação GET:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no 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"
  }
}
Obtendo as informações da página para exportação
+ código HTML do corpo da página
GET Request URL:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitação GET:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no 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: recomendamos que você baixe e mantenha atualizados os arquivos estáticos da página (scripts e estilos) sempre que usar essa solicitação. Esses arquivos mudam constantemente e não é possível verificar se os arquivos estão atualizados por meio da API.
Obtendo as informações da página para exportação
+ código HTML da página inteira
GET Request URL:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de solicitação GET:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Resposta no 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: recomendamos que você baixe e mantenha atualizados os arquivos estáticos da página (scripts e estilos) sempre que usar essa solicitação. Esses arquivos mudam constantemente e não é possível verificar se os arquivos estão atualizados por meio da API.
Webhook (ou retorno de chamada)
A sincronização pode ser realizada automaticamente. Para fazer isso, especifique o URL do script para o qual uma solicitação com notificação será enviada sempre que você clicar no botão "Publish" (Publicar). Dessa forma, você pode atualizar o conteúdo, bem como adicionar novas páginas ao seu servidor.

Você pode especificar o link para o webhook na seção API do seu projeto: Site Settings → Export → API Integration:
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 receber a resposta esperada, haverá mais duas tentativas de repetir a solicitação ao seu servidor (3 solicitações no total).

A solicitação pode ser enviada não de uma 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 foi enviada de uma vez, você precisa verificar se ela não foi enviada dentro do período de tempo especificado.
Importante: o tempo máximo de espera de resposta de seu servidor é de 5 segundos. Se a resposta não for recebida, a conexão será interrompida. É por isso que você deve salvar essa notificação e, em seguida, executar a sincronização, por meio do cron, por exemplo. Normalmente, se você tiver muitas imagens na página, esse tempo não será suficiente.

Como fazer
Exemplos de cenários de uso
Há dois cenários comuns para o uso da API Tilda : Se você precisar automatizar a exportação e o salvamento de todos os arquivos de projeto no seu servidor e se precisar integrar as páginas criadas no Tilda aos modelos do seu 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 de que você precisa;
  • Crie um script em seu servidor - ele enviará solicitações à 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 de que você precisa enviando a solicitação getprojectinfo .
  2. Percorra a matriz de imagens que você recebeu na resposta da solicitação. Há uma lista de arquivos nela. Você pode encontrar o endereço de origem do arquivo na variável from e o nome local que precisa usar para salvar o arquivo na variável to. Copie os arquivos onde for necessário. Esses arquivos são comuns a todas as páginas do projeto.
  3. Se 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 salvar esse valor na seção de servidor do arquivo de configuração do 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;
  • Salvar imagens, scripts e estilos usados na página a partir das matrizes de imagens, js e css no servidor;
  • Crie um novo arquivo de página (usando o nome da variável filename ) e preencha-o com o valor da variável html.

Se seu objetivo for integrar páginas de Tilda em seu modelo (que já tem o cabeçalho, o menu, o rodapé, etc.), siga as mesmas etapas, mas use a opção getpageexport request. Ele retorna o código HTML do corpo que você pode colar na área de conteúdo do seu modelo. Observe que, nesse caso, você precisa adicionar scripts e estilos no modelo manualmente.
Integração sem cópia de imagens e arquivos JS/CSS

Se o seu 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-se de adicionar arquivos JS e CSS ao seu modelo. A lista desses arquivos é retornada nas variáveis js e css da resposta da solicitação.

Um exemplo de uma solicitação simples usando PHP:
$result = file_get_contents('https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0');
$project = json_decode($result, true);
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 a fonte em cada página exportada.
Fabricado em
Tilda