Tilda API

Intégration automatique du projet Tilda à votre propre site web
Toutes les demandes sont envoyées à l'aide de la méthode GET et la réponse est renvoyée au format JSON.

La réponse obtenue est la suivante :
{
  "status": "FOUND",
  ...
}
La réponse d'erreur est la suivante :
{
  "status": "ERROR",
  ...
}
Le nombre de demandes est limité : 150 par heure.
L'API est utilisée pour synchroniser le contenu créé sur Tilda avec votre site web. Il est interdit de demander au serveur Tilda de récupérer des données pour chaque visite d'un utilisateur sur votre site web.

Tout le contenu doit être sauvegardé sur votre serveur (y compris les images, les scripts et les styles) avant de pouvoir être distribué aux utilisateurs. Si vous créez une charge en envoyant constamment des demandes aux serveurs API Tilda , votre compte peut être bloqué et la fonction API sera désactivée.

Si l'algorithme de synchronisation est bien organisé, il devrait y avoir 1 à 3 demandes, par conséquent, 150 demandes au serveur par heure sont plus que suffisantes. Il ne devrait pas y avoir de demandes après la synchronisation jusqu'à ce que vous ayez modifié quelque chose sur la page, auquel cas vous devrez synchroniser à nouveau les informations.
Comment commencer
Veuillez noter que la fonction API n'est disponible que pour les abonnés de Tilda Business Plan. Pour commencer, vous devez obtenir une clé publique et une clé secrète. Vous pouvez les obtenir dans la section API sur Tilda: Paramètres du site → Exportation → Intégration API.
Liste des demandes
Liste des projets
/v1/getprojectslist

Informations sur les projets
/v1/getprojectinfo

Liste des pages du projet
/v1/getpageslist

Informations sur la page (+ code html du corps)
/v1/getpage

Informations sur la page (+ code html pleine page)
/v1/getpagefull

Informations sur la page pour l'exportation (+ code html du corps)
/v1/getpageexport

Informations complètes sur la page pour l'exportation (+ code html de la page complète)
/v1/getpagefullexport
Les URL pour toutes les demandes : https://api.tildacdn.info
Dans chaque demande, vous devez envoyer des variables : publickey et secretkey, et éventuellement, en fonction de la demande, projecttid ou pageid.
Vous pouvez définir les chemins d'accès aux images(export_imgpath), aux fichiers JS(export_jspath) et aux fichiers CSS(export_csspath) dans l'onglet Export des Paramètres du site de chaque projet.
Vous pouvez donc spécifier des chemins d'accès relatifs ou absolus aux fichiers qui seront stockés sur votre serveur si vous souhaitez créer des copies exactes des pages sur votre serveur.
Obtenir la liste des projets
GET Request URL:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
URL de la requête GET :
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Réponse au format JSON :
{
  "status": "FOUND",
  "result": [
    {
      "id": "0",
      "title": "First Project",
      "descr": "Some info"
    },
    {
      "id": "1",
      "title": "Second Project",
      "descr": ""
    },
    ...
  ]
}
Obtenir des informations sur le projet :
GET Request URL:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL de la requête GET :
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Réponse au format 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": ""
      }
      ...
    ]
  }
}
Pour obtenir un échantillon du fichier de configuration de votre serveur web, ajoutez le paramètre webconfig avec la valeur htaccess ou nginx à l'URL de la requête.

Si vous utilisez nginx, vous devez ajouter l'échantillon reçu dans la section serveur du fichier de configuration de votre serveur web.
Obtenir la liste des pages du projet
GET Request URL:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
URL de la requête GET :
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Réponse au format 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"
    },
    ...
  ]
}
Obtenir les informations de la page
+ body Code HTML
GET Request URL:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de la requête GET :
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Réponse au format 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": [
      ...
    ]
  }
}
Obtenir les informations sur la page
+ code HTML complet
GET Request URL:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de la requête GET :
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Réponse au format 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"
  }
}
Obtenir les informations sur la page pour l'exportation
+ code HTML du corps de la page
GET Request URL:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de la requête GET :
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Réponse au format 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"
  }
}
Important : nous vous recommandons de télécharger et de tenir à jour les fichiers statiques des pages (scripts et styles) chaque fois que vous utilisez cette demande. Ces fichiers changent constamment et vous ne pouvez pas vérifier s'ils ont été mis à jour via l'API.
Obtenir les informations sur la page pour l'exportation
+ code HTML de la page complète
GET Request URL:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
URL de la requête GET :
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Réponse au format 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"
  }
}
Important : nous vous recommandons de télécharger et de tenir à jour les fichiers statiques des pages (scripts et styles) chaque fois que vous utilisez cette demande. Ces fichiers changent constamment et vous ne pouvez pas vérifier s'ils ont été mis à jour via l'API.
Webhook (ou Callback)
La synchronisation peut être effectuée automatiquement. Pour ce faire, indiquez l'URL du script où une requête avec notification sera envoyée chaque fois que vous cliquez sur le bouton "Publier". Vous pouvez ainsi mettre à jour le contenu et ajouter de nouvelles pages sur votre serveur.

Vous pouvez spécifier le lien vers le webhook dans la section API de votre projet : Site Settings → Export → API Integration :
La notification est envoyée à l'aide de la méthode GET .
Paramètres : pageid, projectd, published, publickey

Votre webhook doit confirmer que la demande a été reçue. La réponse attendue à une demande réussie est "ok"
(en PHP, il suffit de faire un écho à "ok" ;)

Si le serveur Tilda ne reçoit pas la réponse attendue, il y aura deux autres tentatives pour répéter la demande vers votre serveur (3 demandes au total).

La demande peut être envoyée non pas en une seule fois, mais avec un délai de 1 à 20 minutes après la publication de la page. Par conséquent, si la demande n'a pas été envoyée en une seule fois, vous devez vérifier qu'elle n'a pas été envoyée dans le délai spécifié.
Important : le temps d'attente maximum de la réponse de votre serveur est de 5 secondes. Si la réponse n'est pas reçue, la connexion est interrompue. C'est pourquoi vous devez enregistrer cette notification et procéder ensuite à la synchronisation, par exemple à l'aide d'un cron. En général, si vous avez beaucoup d'images sur la page, ce temps n'est pas suffisant.

comment faire
Exemples de scénarios d'utilisation
Il existe deux scénarios courants pour l'utilisation de l'API Tilda : Si vous avez besoin d'automatiser l'exportation et l'enregistrement de tous les fichiers de projet sur votre serveur, et si vous avez besoin d'intégrer les pages créées sur Tilda dans les modèles de votre site web.
Comment exporter toutes les pages du projet
Notre objectif est de sauvegarder le projet publié dans notre compte Tilda sur notre serveur local.
  • Dans l'onglet Exportation des paramètres du site, indiquez les chemins d'accès aux images, aux fichiers JS et aux fichiers CSS, tels que /images, /js et /css ;
  • Rappelez-vous l'identifiant du projet dont vous avez besoin ;
  • Créez un script sur votre serveur - il enverra des demandes à l'API, créera des fichiers et enregistrera des informations dans ces fichiers ;
  • Créez des dossiers sur le serveur dans lesquels vous copierez des fichiers (images, js, css).
  1. Obtenez des informations sur le projet dont vous avez besoin en envoyant la demande getprojectinfo.
  2. Parcourez en boucle le tableau d'images que vous avez reçu dans la réponse à la demande. Il contient une liste de fichiers. Vous pouvez trouver l'adresse source du fichier dans la variable from et le nom local que vous devez utiliser pour enregistrer le fichier dans la variable to. Copiez les fichiers là où vous le souhaitez. Ces fichiers sont communs à toutes les pages du projet.
  3. Si vous avez ajouté le paramètre webconfig à la requête précédente, vous devez soit créer un fichier.htaccess et le remplir avec la valeur de la variable webconfig, soit enregistrer cette valeur dans la section server du fichier de configuration de votre serveur web nginx.
  4. Obtenir la liste de toutes les pages de notre projet en envoyant la requête getpageslist.
  5. Parcourez en boucle la liste des pages que vous avez reçues. Pour chaque page :
  • Obtenez les informations sur les pages à exporter en envoyant la requête getpagefullexport ;
  • Enregistrer sur le serveur les images, les scripts et les styles utilisés sur la page à partir des tableaux images, js et css ;
  • Créez un nouveau fichier de page (en utilisant le nom de la variable filename ) et remplissez-le avec la valeur de la variable html.

Si votre objectif est d'intégrer des pages de Tilda dans votre modèle (qui a déjà l'en-tête, le menu, le pied de page, etc.), suivez les mêmes étapes, mais utilisez l'option getpageexport demande. Il renvoie un code HTML que vous pouvez coller dans la zone de contenu de votre modèle. Veuillez noter que dans ce cas, vous devez ajouter manuellement des scripts et des styles dans le modèle.
Intégration sans copier les images et les fichiers JS / CSS

Si votre projet n'est pas très chargé et que vous ne souhaitez pas enregistrer de fichiers statiques sur votre serveur, utilisez la requête getpage qui renvoie le code HTML du corps. Les images seront chargées depuis le serveur Tilda . L'essentiel est de ne pas oublier d'ajouter des fichiers JS et CSS à votre modèle. La liste de ces fichiers est renvoyée dans les variables js et css de la réponse à la requête.

Exemple de requête simple utilisant 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) ;
Conformément à l'accord sur les conditions de service de Tilda, si vous utilisez la fonction d'exportation de l'API, vous devez fournir l'identifiant "Made on Tilda" avec un lien vers https://tilda.cc en tant que source sur chaque page exportée.
Fabriqué le
Tilda