Tilda API

Automatyczna integracja projektu Tilda z własną stroną internetową
Wszystkie żądania wysyłane są metodą GET, a odpowiedź zwracana jest w formacie JSON.

Pomyślna odpowiedź to:
{
  "status": "ZNALEZIONO",
  ...
}
Odpowiedź na błąd to:
{
  "status": "BŁĄD",
  ...
}
Istnieje ograniczenie liczby żądań: 150 na godzinę.
API służy do synchronizacji treści utworzonych na Tildzie z Twoją witryną. Zabronione jest żądanie od serwera Tilda pobrania danych dla każdej wizyty użytkownika na Twojej stronie.

Cała zawartość musi zostać zapisana na serwerze (w tym obrazy, skrypty i style), zanim będzie można ją rozpowszechnić wśród użytkowników. Jeśli tworzysz obciążenie, stale wysyłając żądania do serwerów API Tilda, Twoje konto może zostać zablokowane, a funkcja API zostanie dezaktywowana.

Jeśli algorytm synchronizacji jest dobrze zorganizowany, powinno być 1-3 żądań, dlatego 150 żądań do serwera na godzinę jest więcej niż wystarczające. Po synchronizacji nie powinno być żadnych żądań, dopóki nie zmienisz czegoś na stronie, w takim przypadku będziesz musiał ponownie zsynchronizować informacje.
Jak zaczac
Należy pamiętać, że funkcja API jest dostępna tylko dla subskrybentów Tilda Business Plan. Na początek musisz zdobyć klucz publiczny i tajny klucz. Możesz je pobrać w sekcji API na stronie Tilda: Ustawienia witryny → Eksportuj → Integracja API.
Lista żądań
Lista projektów
/v1/getprojectslist

Informacje o projekcie
/v1/getprojectinfo

Lista stron projektu
/v1/getpageslist

Informacje o stronie (+ kod html)
/v1/getpage

Informacje o stronie (+ całostronicowy kod html)
/v1/getpagefull

Informacje o stronie do eksportu (+ kod html)
/v1/getpageexport

Pełna strona informacji do eksportu (+ całostronicowy kod html)
/v1/getpagefullexport
Adresy URL wszystkich żądań: https://api.tildacdn.info
W każdym żądaniu należy wysłać zmienne: publickey i secretkey, a opcjonalnie, w zależności od żądania, projectid lub pageid.
Wartości ścieżek dla obrazów (export_imgpath), plików JS (export_jspath) i plików CSS (export_csspath) można ustawić na karcie Eksportuj w ustawieniach witryny każdego projektu.
Dlatego możesz określić względne lub bezwzględne ścieżki do plików, które będą przechowywane na serwerze, jeśli chcesz utworzyć dokładne kopie stron na serwerze.
Pobieranie listy projektów
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getprojectslist/?publickey=0000000000000000000000&secretkey=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  »wynik«: [
    {
      "id": "0",
      "title": "Pierwszy projekt",
      "descr": "Niektóre informacje"
    },
    {
      "id": "1",
      "tytuł": "Drugi projekt",
      "descr": ""
    },
    ...
  ]
}
Uzyskiwanie informacji o projekcie:
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getprojectinfo/?publickey=0000000000000000000000&secretkey=0000000000000000000000&projectid=0
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  "result": {
    "id": "0",
    "title": "tytuł projektu",
    "descr": "",
    "customdomain": "project.com",
    "export_csspath": "",
    "export_jspath": "",
    "export_imgpath": "",
    "indexpageid": "0",
    "customcsstext": "y",
    "favicon": "",
    "page404id": "0",
    "obrazy": [
      {
        "od": "",
        "do": ""
      }
      ...
    ]
  }
}
Aby uzyskać próbkę pliku konfiguracyjnego serwera internetowego, dodaj parametr webconfig z wartością htaccess lub nginx do adresu URL żądania.

Jeśli używasz nginx, musisz dodać otrzymaną próbkę do sekcji serwera pliku konfiguracyjnego serwera internetowego.
Pobieranie listy stron projektu
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getpageslist/?publickey=000000000000000000000&secretkey=0000000000000000000000&projectid=0
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  »wynik«: [
    {
      "id": "1001",
      "projectid": "0",
      "title": "Najpierw tytuł strony",
      "descr": "",
      "img": "",
      "featureimg": "",
      "alias": "",
      "Data": "2014-05-16 14:45:53",
      "sort": "80",
      "opublikowane": "1419702868",
      "nazwa_pliku": "strona1001.html"
    },
    {
      "id": "1002",
      "projectid": "0",
      "title": "Tytuł strony drugi",
      "descr": "",
      "img": "",
      "featureimg": "",
      "alias": "",
      "Data": "2014-05-17 10:50:00",
      "sort": "90",
      "opublikowane": "1419702277",
      "nazwa_pliku": "strona1002.html"
    },
    ...
  ]
}
Uzyskiwanie informacji o stronie
+ kod HTML ciała
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getpage/?publickey=000000000000000000000&secretkey=000000000000000000000&pageid=1001
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Tytuł strony",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "Data": "2014-05-16 14:45:53",
    "sort": "80",
    "opublikowane": "1419702868",
    "html": "jakiś kod strony html",
    "nazwapliku": "strona1001.html",
    "js": [
      ...
    ],
    "CSS": [
      ...
    ]
  }
}
Uzyskiwanie informacji o stronie
+ pełny kod HTML
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getpagefull/?publickey=00000000000000000000000&secretkey=0000000000000000000000&pageid=1001
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Tytuł strony",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "Data": "2014-05-16 14:45:53",
    "sort": "80",
    "opublikowane": "1419702868",
    "html": "jakiś kod strony html",
    "nazwa_pliku": "strona1001.html"
  }
}
Pobieranie informacji o stronie do eksportu
+ kod HTML strony głównej
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getpageexport/?publickey=000000000000000000000&secretkey=000000000000000000000&pageid=1001
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Tytuł strony",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "Data": "2014-05-16 14:45:53",
    "sort": "80",
    "opublikowane": "1419702868",
    "obrazy": [
      {
        "od": "",
        "do": ""
      },
      {
        "od": "",
        "do": ""
      },
      {
        "od": "",
        "do": ""
      }
    ],
    "html": "kod html strony głównej z lokalnymi linkami do plików",
    "nazwa_pliku": "strona1001.html"
  }
}
Ważny: Zalecamy pobieranie i aktualizowanie plików statycznych stron (skryptów i stylów) za każdym razem, gdy używasz tego żądania. Te pliki ciągle się zmieniają i nie można sprawdzić, czy pliki są aktualizowane za pomocą interfejsu API.
Pobieranie informacji o stronie do eksportu
+ całostronicowy kod HTML
Adres URL żądania GET:
https://api.tildacdn.info/v1/ getpagefullexport/?publickey=0000000000000000000000&secretkey=000000000000000000000&pageid=1001
POBIERZ Adres URL żądania:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
Odpowiedź w formacie JSON:
{
  "status": "ZNALEZIONO",
  "result": {
    "id": "1001",
    "projectid": "0",
    "title": "Tytuł strony",
    "descr": "",
    "img": "",
    "featureimg": "",
    "alias": "",
    "Data": "2014-05-16 14:45:53",
    "sort": "80",
    "opublikowane": "1419702868",
    "obrazy": [
      {
        "od": "",
        "do": ""
      },
      {
        "od": "",
        "do": ""
      },
      {
        "od": "",
        "do": ""
      }
    ],
    "html": "całostronicowy kod html z lokalnymi linkami do plików",
    "nazwa_pliku": "strona1001.html"
  }
}
Ważny: Zalecamy pobieranie i aktualizowanie plików statycznych stron (skryptów i stylów) za każdym razem, gdy używasz tego żądania. Te pliki ciągle się zmieniają i nie można sprawdzić, czy pliki są aktualizowane za pomocą interfejsu API.
Webhook (lub wywołanie zwrotne)
Synchronizacja może być wykonywana automatycznie. Aby to zrobić, określ adres URL skryptu, do którego zostanie wysłane żądanie z powiadomieniem po kliknięciu przycisku "Opublikuj". W ten sposób możesz aktualizować zawartość, a także dodawać nowe strony na serwerze.

Możesz określić łącze do elementu webhook w sekcji interfejsu API projektu: Ustawienia witryny → Eksportowanie → integracja interfejsu API:
Powiadomienie jest wysyłane za pomocą metody GET .
Parametry: pageid, projectid, published, publickey

Element webhook musi potwierdzić, że żądanie zostało odebrane. Oczekiwana odpowiedź na pomyślne żądanie to "ok"
(W PHP po prostu echo "ok";)

Jeśli serwer Tilda nie otrzyma oczekiwanej odpowiedzi, nastąpią jeszcze 2 próby powtórzenia żądania do serwera (łącznie 3 żądania).

Żądanie może zostać wysłane nie od razu, ale z opóźnieniem od 1 do 20 minut po opublikowaniu strony. Dlatego jeśli prośba nie przyszła od razu, musisz sprawdzić, czy nie przyszła w określonym czasie.
Ważny: Maksymalny czas oczekiwania na odpowiedź z serwera wynosi 5 sekund. Jeśli odpowiedź nie zostanie odebrana, połączenie zostanie przerwane. Dlatego należy zapisać to powiadomienie , a następnie przeprowadzić synchronizację - na przykład za pomocą crona. Zazwyczaj, jeśli masz dużo zdjęć na stronie, ten czas nie wystarczy.

jak
Przykłady scenariuszy użycia
Istnieją dwa typowe scenariusze korzystania z interfejsu API Tilda: Jeśli chcesz zautomatyzować eksportowanie i zapisywanie wszystkich plików projektu na serwerze i jeśli chcesz zintegrować strony utworzone w Tilda z szablonami witryn sieci Web.
Jak wyeksportować wszystkie strony w projekcie
Naszym celem jest zapisanie projektu opublikowanego na naszym koncie Tilda na naszym lokalnym serwerze.
  • Na karcie Eksport w Ustawieniach witryny określ ścieżki do obrazów, plików JS i plików CSS, takich jak /images, /js i /css;
  • Zapamiętaj projekt, którego potrzebujesz;
  • Utwórz skrypt na serwerze — będzie on wysyłał żądania do interfejsu API, tworzył pliki i zapisywał informacje w tych plikach;
  • Utwórz foldery na serwerze, do których będziesz kopiować pliki (obrazy, js, css).
  1. Uzyskaj informacje o potrzebnym projekcie, wysyłając żądanie getprojectinfo .
  2. Przechodzenie w pętli przez tablicę obrazów otrzymaną w odpowiedzi na żądanie. Jest w nim lista plików. Adres źródłowy pliku można znaleźć w zmiennej from , a nazwę lokalną, której należy użyć do zapisania pliku w zmiennej to . Skopiuj pliki tam, gdzie potrzebujesz. Pliki te są wspólne dla wszystkich stron w projekcie.
  3. Jeśli parametr webconfig został dodany do poprzedniego żądania, należy utworzyć plik . htaccess i wypełnij go wartością zmiennej webconfig lub zapisz tę wartość w sekcji serwera pliku konfiguracyjnego serwera WWW NGINX .
  4. Pobierz listę wszystkich stron w naszym projekcie, wysyłając żądanie getpageslist .
  5. Przejrzyj otrzymaną listę stron. Dla każdej strony:
  • Pobierz informacje o stronie do eksportu, wysyłając żądanie getpagefullexport ;
  • Zapisywanie obrazów, skryptów i stylów używanych na stronie z tablic obrazów, js i css na serwerze;
  • Utwórz nowy plik strony (używając nazwy ze zmiennej filename ) i wypełnij go wartością zmiennej html .

Jeśli Twoim celem jest zintegrowanie stron z Tildy z szablonem (który ma już nagłówek, menu, stopkę itp.), Wykonaj te same kroki, ale użyjpobierz eksport stronyprosić. Zwraca kod HTML treści, który można wkleić w obszarze zawartości szablonu. Pamiętaj, że w tym przypadku musisz ręcznie dodać skrypty i style w szablonie.
Integracja bez kopiowania obrazków i plików JS/CSS

Jeśli Twój projekt nie jest mocno obciążony i nie chcesz zapisywać plików statycznych na serwerze, użyj żądania getpage, które zwraca kod HTML treści. Obrazy zostaną załadowane z serwera Tilda. Najważniejsze jest, aby pamiętać o dodaniu plików JS i CSS do szablonu. Lista tych plików jest zwracana w zmiennych js i css odpowiedzi na żądanie.

Przykład prostego żądania przy użyciu PHP:
$result = file_get_contents('https://api.tildacdn.info/v1/getprojectinfo/?publickey=0000000000000000000&secretkey=0000000000000000000&projectid=0');
$project = json_decode($result, prawda);
print_r ust. $project);
Zgodnie z Warunkami świadczenia usług Tilda, jeśli korzystasz z funkcji eksportu API, musisz podać identyfikator „Made on Tilda” z linkiem do https://tilda.cc jako źródła na każdej eksportowanej stronie.
Wykonane na
Tilda