Tilda API

Integrazione automatica del progetto Tilda con il vostro sito web
Tutte le richieste vengono inviate con il metodo GET e la risposta viene restituita in formato JSON.

La risposta corretta è:
{
  "status": "FOUND",
  ...
}
La risposta all'errore è:
{
  "status": "ERROR",
  ...
}
Il numero di richieste è limitato: 150 all'ora.
L'API viene utilizzata per sincronizzare i contenuti creati su Tilda con il proprio sito web. È vietato richiedere al server Tilda di recuperare i dati per ogni visita dell'utente al proprio sito web.

Tutti i contenuti devono essere salvati sul proprio server (compresi immagini, script e stili) prima di poter essere distribuiti agli utenti. Se si crea un carico inviando costantemente richieste ai server Tilda API, l'account potrebbe essere bloccato e la funzione API disattivata.

Se l'algoritmo di sincronizzazione è ben organizzato, le richieste dovrebbero essere 1-3, quindi 150 richieste al server all'ora sono più che sufficienti. Dopo la sincronizzazione non dovrebbero esserci richieste fino a quando non si cambia qualcosa nella pagina; in questo caso, si dovranno sincronizzare nuovamente le informazioni.
Come iniziare
Si noti che la funzione API è disponibile solo per gli abbonati a Tilda Business Plan. Per iniziare, è necessario ottenere una chiave pubblica e una chiave segreta. È possibile ottenerli nella sezione API di Tilda: Impostazioni del sito → Esportazione → Integrazione API.
Elenco delle richieste
Elenco dei progetti
/v1/getprojectslist

Informazioni sul progetto
/v1/ottenere informazioni sul progetto

Elenco delle pagine del progetto
/v1/getpageslist

Informazioni sulla pagina (+ codice html del corpo)
/v1/getpage

Informazioni sulla pagina (+ codice html fullpage)
/v1/getpagefull

Informazioni sulla pagina per l'esportazione (+ codice html del corpo)
/v1/getpageexport

Informazioni complete sulla pagina per l'esportazione (+ codice html fullpage)
/v1/getpagefullexport
Gli URL per tutte le richieste: https://api.tildacdn.info
In ogni richiesta, è necessario inviare le variabili: publickey e secretkey e, facoltativamente, a seconda della richiesta, projectd o pageid.
È possibile impostare i valori di percorso per le immagini(export_imgpath), i file JS(export_jspath) e i file CSS(export_csspath) nella scheda Esportazione di Impostazioni sito di ogni progetto.
Pertanto, è possibile specificare percorsi relativi o assoluti per i file che verranno memorizzati sul server, se si desidera creare copie esatte delle pagine sul server.
Ottenere l'elenco dei progetti
GET Request URL:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
URL di richiesta GET:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Risposta in formato JSON:
{
  "status": "FOUND",
  "result": [
    {
      "id": "0",
      "title": "First Project",
      "descr": "Some info"
    },
    {
      "id": "1",
      "title": "Second Project",
      "descr": ""
    },
    ...
  ]
}
Ottenere informazioni sul progetto:
GET Request URL:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL di richiesta GET:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Risposta in 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": ""
      }
      ...
    ]
  }
}
Per ottenere un campione del file di configurazione del server web, aggiungere il parametro webconfig con il valore htaccess o nginx all'URL della richiesta.

Se si usa nginx, è necessario aggiungere il campione ricevuto nella sezione server del file di configurazione del server web.
Ottenere l'elenco delle pagine del progetto
GET Request URL:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL di richiesta GET:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Risposta in 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"
    },
    ...
  ]
}
Ottenere le informazioni sulla pagina
+ codice HTML del corpo
GET Request URL:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL di richiesta GET:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Risposta in 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": [
      ...
    ]
  }
}
Ottenere le informazioni sulla pagina
+ codice HTML completo
GET Request URL:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL di richiesta GET:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Risposta in 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"
  }
}
Ottenere le informazioni sulla pagina per l'esportazione
+ il codice HTML del corpo della pagina
GET Request URL:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL di richiesta GET:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Risposta in 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: si consiglia di scaricare e mantenere aggiornati i file statici della pagina (script e stili) ogni volta che si utilizza questa richiesta. Questi file cambiano continuamente e non è possibile verificare se i file sono aggiornati tramite l'API.
Ottenere le informazioni sulla pagina per l'esportazione
+ codice HTML a pagina intera
GET Request URL:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL di richiesta GET:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Risposta in 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: si consiglia di scaricare e mantenere aggiornati i file statici della pagina (script e stili) ogni volta che si utilizza questa richiesta. Questi file cambiano continuamente e non è possibile verificare se i file sono aggiornati tramite l'API.
Webhook (o Callback)
La sincronizzazione può essere eseguita automaticamente. A tal fine, specificare l'URL dello script a cui verrà inviata una richiesta con notifica ogni volta che si fa clic sul pulsante "Pubblica". In questo modo è possibile aggiornare i contenuti e aggiungere nuove pagine sul server.

È possibile specificare il link al webhook nella sezione API del progetto: Impostazioni del sito → Esportazione → Integrazione API:
La notifica viene inviata con il metodo GET .
Parametri: pageid, projectid, published, publickey

Il webhook deve confermare che la richiesta è stata ricevuta. La risposta attesa per una richiesta andata a buon fine è "ok"
(in PHP è sufficiente echo "ok";)

Se il server Tilda non riceve la risposta attesa, ci saranno altri 2 tentativi di ripetere la richiesta al proprio server (3 richieste in totale).

La richiesta può essere inviata non subito, ma con un ritardo da 1 a 20 minuti dopo la pubblicazione della pagina. Pertanto, se la richiesta non è arrivata subito, è necessario verificare che non sia arrivata entro il periodo di tempo specificato.
Importante: il tempo massimo di attesa della risposta dal server è di 5 secondi. Se la risposta non viene ricevuta, la connessione viene interrotta. Per questo motivo è necessario salvare questa notifica e poi eseguire la sincronizzazione, ad esempio tramite cron. Di solito, se nella pagina sono presenti molte immagini, questo tempo non è sufficiente.

come
Esempi di scenari d'uso
Esistono due scenari comuni per l'utilizzo dell'API di Tilda : Se avete bisogno di automatizzare l'esportazione e il salvataggio di tutti i file di progetto sul vostro server e se avete bisogno di integrare le pagine create su Tilda con i modelli del vostro sito web.
Come esportare tutte le pagine del progetto
Il nostro obiettivo è salvare il progetto pubblicato nel nostro account Tilda sul nostro server locale.
  • Nella scheda Esportazione delle Impostazioni del sito, specificare i percorsi per le immagini, i file JS e i file CSS, come /images, /js e /css;
  • Ricordare il projectectid del progetto di cui si ha bisogno;
  • Creare uno script sul server, che invierà richieste all'API, creerà file e salverà le informazioni in questi file;
  • Creare sul server le cartelle in cui copiare i file (immagini, js, css).
  1. Per ottenere informazioni sul progetto desiderato, inviare la richiesta getprojectinfo .
  2. Eseguire il loop dell'array di immagini ricevuto nella risposta alla richiesta. In esso è presente un elenco di file. L'indirizzo di origine del file si trova nella variabile from e il nome locale da usare per salvare il file nella variabile to. Copiare i file dove è necessario. Questi file sono comuni a tutte le pagine del progetto.
  3. Se si è aggiunto il parametro webconfig alla richiesta precedente, è necessario creare un file.htaccess e riempirlo con il valore della variabile webconfig o salvare questo valore nella sezione server del file di configurazione del server web nginx.
  4. Ottenere l'elenco di tutte le pagine del progetto inviando la richiesta getpageslist.
  5. Scorrere l'elenco delle pagine ricevute. Per ogni pagina:
  • Ottenere le informazioni sulla pagina da esportare inviando la richiesta getpagefullexport;
  • Salva le immagini, gli script e gli stili utilizzati nella pagina dagli array images, js e css sul server;
  • Creare un nuovo file di pagina (utilizzando il nome della variabile filename ) e riempirlo con il valore della variabile html.

Se l'obiettivo è quello di integrare le pagine di Tilda nel modello (che ha già l'intestazione, il menu, il piè di pagina e così via), seguire gli stessi passi, ma utilizzare l'opzione getpageexport richiesta. Restituisce il codice HTML del corpo che si può incollare nell'area del contenuto del template. Si noti che in questo caso è necessario aggiungere manualmente gli script e gli stili nel template.
Integrazione senza copiare immagini e file JS/CSS

Se il progetto non è molto carico e non si desidera salvare file statici sul server, utilizzare la richiesta getpage che restituisce il codice HTML del corpo. Le immagini saranno caricate dal server Tilda . L'importante è ricordarsi di aggiungere i file JS e CSS al template. L'elenco di questi file viene restituito nelle variabili js e css della risposta alla richiesta.

Un esempio di richiesta semplice con PHP:
$result = file_get_contents('https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0');
$project = json_decode($result, true);
print_r($progetto);
In conformità con l'Accordo sui termini di servizio di Tilda, se si utilizza la funzione di esportazione API, è necessario fornire l'identificatore "Made on Tilda" con un link a https://tilda.cc come fonte in ogni pagina esportata.
Realizzato su
Tilda