Tilda API

Tilda-дағы жобаны өз веб-сайтыңызбен автоматты түрде біріктіру
Барлық сұрау салулар GET-тің тұрақты әдісімен беріледі. Жауап JSON форматында қайтарылады.

Сәтті жауап:
{
  "status": "FOUND",
  ...
}
Қатемен жауап беріңіз:
{
  "status": "ERROR",
  ...
}
Сұрау салулар саны бойынша шектеу бар: сағатына 150 сұраным.
API сайтыңызбен Tilda бағдарламасында жасалған мазмұнды синхрондау үшін қажет. Сайтқа кіруші кірген сайын Tilda серверіне кіруге және деректерді алуға тыйым салынады.

Барлық мазмұнды серверге (суреттерді, сценарийлерді және мәнерлерді қоса алғанда) толық көшіріп, одан пайдаланушыларға тарату қажет. Егер серверлерімізге үнемі кіруге байланысты жүктеме жасасаңыз, тіркелгіңіз блокталады және API функциясы ажыратылады.

Егер синхрондау логикасы дұрыс ұйымдастырылса, онда 1-3 хит (жарияланған бетке) болуы керек, сондықтан серверге сағатына 150 соққы жеткілікті. Синхрондалғаннан кейін бетке өзгерістер енгізбейінше соққылар болмайды, сосын ақпаратты қайтадан синхрондау қажет болады.
Жұмысты бастау
API өзара іс-қимылы бизнес-жоспар үшін ғана қолжетімді екенін ескеріңіз. Жұмысқа кірісу үшін қоғамдық және құпиялылық алу керек. Мұны жеке тіркелгіңіздің API бөлімінде жасауға болады: Сайт параметрлері → экспорттау → API.
Сұрау салулар тізімі
Жобалар тізімі
/v1/getprojectslist

Жоба туралы ақпарат
/v1/getprojectinfo

Жобадағы беттер тізімі
/v1/getpageslist

Бет ақпараты (+ body html-код)
/v1/getpage

Бет ақпараты (+ толық бет html-код)
/v1/getpagefull

Бет ақпаратын экспорттау (+ body html-код)
/v1/getpageexport

Бет ақпаратын экспорттау (+ толық бет html-код)
/v1/getpagefullexport
Барлық сұрау салулардың мекенжайы: https://api.tildacdn.info
Әрбір сұрауда айнымалыларды: publickey және secretkey, және міндетті түрде сұрауға, проекцияға немесе бетке байланысты тапсыру керек
«Экспорт» қойындысындағы әрбір жобаның параметрлеріндегі жеке тіркелгіңізде кескіндер ( export_imgpath ), js ( export_jspath ) және css ( export_csspath ) файлдарының жол мәндерін көрсетуге болады.
Осылайша, тапсырма сервердегі беттердің толық көшірмесін жасау болса, серверде сақталатын файлдарға қатысты немесе абсолютті жолдарды орнатуға болады.
Жобалар тізімін алу
Сұрау URL мекенжайын алу:
https://api.tildacdn.info/v1/ getprojectslist/?publickey=0000000000000000000> secretkey=000000000000000
Сұрау URL мекенжайын алу:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
JSON пішіміндегі жауап:
{
  "status": "FOUND",
  "result": [
    {
      "id": "0",
      "title": "First Project",
      "descr": "Some info"
    },
    {
      "id": "1",
      "title": "Second Project",
      "descr": ""
    },
    ...
  ]
}
Жоба туралы ақпарат алу
Сұрау URL мекенжайын алу:
https://api.tildacdn.info/v1/ getprojectinfo/?publickey=00000000000000000000000 Секретки=00000000000000000000000000=0
Сұрау URL мекенжайын алу:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
JSON пішіміндегі жауап:
{
  "status": "FOUND",
  "result": {
    "id": "0",
    "title": "Project title",
    "descr": "",
    "customdomain": "project.ru",
    "export_csspath": "",
    "export_jspath": "",
    "export_imgpath": "",
    "indexpageid": "0",
    "customcsstext": "y",
    "favicon": "",
    "page404id": "0",
    "images": [
      {
        "from": "",
        "to": ""
      }
      ...
    ]
  }
}
Веб-сервердің конфигурация файлының мысалын алу үшін, вебконфиг параметрін сұрау жолына мән htacecess немесе nginx көмегімен қосыңыз.

Nginx қолданған жағдайда алынған мысал сервердің конфигурация файлының сервер бөлімінде орналасуы тиіс.
Жобадағы беттер тізімін алу
GET сұрау жолы:
https://api.tildacdn.info/v1/ getpageslist/?publickey=0000000000000000000000> secretkey=00000000000000000000> Projectid=0
GET сұрау жолы:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
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"
    },
    ...
  ]
}
Бет ақпаратын алу
+ body html коды
GET сұрау жолы:
https://api.tildacdn.info/v1/ getpage/?publickey=000000000000000000000> 0000000000000000000000000000=pageid=1001
GET сұрау жолы:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
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": [
      ...
    ]
  }
}
Бет ақпаратын алу
+ толық html коды
GET сұрау жолы:
https://api.tildacdn.info/v1/ getpagefull/?publickey=000000000000000000000 Секретарь=0000000000000000000000000=pageid=1001
GET сұрау жолы:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
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"
  }
}
Экспорттау беті туралы ақпарат алу
+ шанақ беті html-код
GET сұрау жолы:
https://api.tildacdn.info/v1/ getpageexport/?publickey=00000000000000000000000 Секретки=000000000000000000000000000=Pageid=1001
GET сұрау жолы:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
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"
  }
}
Маңыздысы: Осы әдіске қоңырау шалғанда серверіңіздегі осы бетке арналған статикалық файлдарды (сценарийлер мен мәнерлерді) жаңартып, оларды жаңартып отыруды ұсынамыз. Бұл файлдардағы өзгерістер үнемі орын алып, API көмегімен файлдар нұсқасының өзекті екеніне қатысты ақпарат ала алмайсыз.
Экспорттау беті туралы ақпарат алу
+ толық бет html-код
GET сұрау жолы:
https://api.tildacdn.info/v1/ getpagefullexport/?publickey=0000000000000000000000 Секретки=0000000000000000000000000=pageid=1001
GET сұрау жолы:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
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"
  }
}
Маңыздысы: Осы әдіске қоңырау шалғанда серверіңіздегі осы бетке арналған статикалық файлдарды (сценарийлер мен мәнерлерді) жаңартып, оларды жаңартып отыруды ұсынамыз. Бұл файлдардағы өзгерістер үнемі орын алып, API көмегімен файлдар нұсқасының өзекті екеніне қатысты ақпарат ала алмайсыз.
Webhook (немесе қоңырау шалу)
Автоматты түрде синхрондау үшін жариялау түймешігін басқан сайын хабарландыру сұрауы жіберілетін сценарийдің мекенжайын көрсетуге болады. Осылайша мазмұнды жаңартып, серверіңізге жаңа беттер қосуға болады.

Вебхоктың сілтемесін жобаңыздың API бөлімінде көрсетуге болады: Сайт параметрлері → экспорттау → API:
Хабарлама GET әдісін қолдана отырып жіберіледі.
Параметрлері: беттік, проекциялық, жарияланған, жариялылық

Жауап ретінде сіз сұрау салуды алғаныңызды растауыңыз қажет.
Сәтті сұрау салудың күтілетін жауабы: жарайды
(PHP-де жай ғана «ок» жаңғырығын іске қосыңыз ;)

Егер Tilda сервері күтілген жауап алмаса, онда серверді қайтадан сұрауға тағы екі әрекет болады (барлығы 3 сұрау).

Сұрау салу дереу жіберілмеуі мүмкін, бірақ ол жарияланғаннан кейін 1 минуттан 20 минутқа дейін кешіктіріледі. Сондықтан, егер сұрау салу бірден келмесе, онда оның көрсетілген уақытта келмегеніне көз жеткізу керек.
Маңызды: Серверден жауап күтудің ең көп уақыты 5 секундты құрайды. Жауап алынбаса, қосылым төмендейді. Сондықтан бұл хабарландыруды тек өзіңізде тіркеп , содан кейін ғана синхрондауды, мысалы, крон арқылы орындау керек. Әдетте бетте суреттер көп болса, бұл жолы жеткіліксіз.

Қалай
Үлгіні пайдалану жағдайлары
Tilda API-ді пайдаланудың екі негізгі сценарийі бар: барлық жоба файлдарын серверде сақтау арқылы экспорттау процесін автоматтандыру қажет болғанда және Tilda-да жасалған беттерді сайт үлгілерімен біріктіру қажет болғанда.
Жобадағы барлық беттерді экспорттау
Біздің міндетіміз – Tilda-да жарияланған барлық жобаны біздің сервердегі тіркелгімізде сақтау.
  • Жеке тіркелгіңізде, жоба параметрлерінде, «Экспорттау» қойыншасында суреттерге, js және css файлдарына арналған жолдарды көрсетіңіз. Мысалы, /images, /js және /css
  • Бізге қажетті жобаның проекциясын есте сақтаңыз
  • Серверімізде API-ге сұрау салатын, файлдар жасайтын және оларға ақпарат жазатын сценарий жасаймыз
  • Серверде қалталар жасау (суреттер, js, css), онда файлдарды көшіреміз
  1. Getprojectinfo сұрауымен бізге қажетті жоба туралы ақпарат алыңыз.
  2. Сұраудан алған суреттер массиві арқылы ілмек. Ол файлдар тізімін сақтайды. Айнымалыдан - бастапқы файлдың мекенжайы, ал кімге - файл сақталуға тиіс жергілікті атау. Файлдарды қажетті орындарға көшіріңіз. Бұл файлдар жобадағы барлық беттерге ортақ.
  3. Егер вебконфиг параметрі алдыңғы сұрауға қосылса, не .htaccess файлын жасап, оған webconfig айнымалысынан мазмұнды жазыңыз немесе осы мазмұнды nginx веб-серверіңіздің конфигурация файлының сервер бөліміне қосыңыз.
  4. Getpageslist сұрауымен жобадағы барлық беттердің тізімін алыңыз.
  5. Ілмектегі беттердің алынған тізімінен өтіңіз. Әр бет үшін:
  • GetPageFullExport сұрауы арқылы бетті экспорттау үшін ақпарат алыңыз;
  • Бетте қолданылатын суреттерді, сценарийлерді және мәнерлерді ( суреттерден, JS және CSS массивтерінен) серверде сақтаңыз.
  • Бет файлын ( Файл атауы айнымалысындағы файл атауы) жасап, оған HTML айнымалысының мазмұнын жазыңыз.

Егер сіздің тапсырмаңыз Tilda-дан беттерді үлгіге біріктіру болса (үстіңгі деректеме, мәзір, төменгі колонтитул және т.б. бар жерде), онда процедура бірдей, бірақ пайдаланыңыз getpageexport. Ол үлгідегі мазмұн аймағына қоюға болатын html кодын қайтарады. Бұл жағдайда үлгіге сценарийлер мен стильдерді қолмен қосу керектігін ескеру керек.
Суреттер мен js/css файлдарын көшірмей біріктіру
Егер жоғары жүктемелі жоба болмаса және файлдарды көшірумен айналысқыңыз келмесе, html кодын қайтаратын getpage сұрауын пайдаланыңыз. Суреттер Tilda серверінен жүктеледі. Ең бастысы үлгіге js және css файлдарын қосуды ұмытпау. Олардың тізімі js және css айнымалыларында бірдей сұрау нәтижесінде қайтарылады.
Қарапайым PHP сұрауының мысалы:
$result = file_get_contents(https://api.tildacdn.info/v1/getprojectinfo/?publickey=0000000000000000000> 000000000000000000000000=0');
$project = json_decode($result, шын);
print_r ($project);
Пайдаланушы келісіміне сәйкес, API экспорттау функциясын пайдалану кезінде әр экспортталған бетте «Тильда жасалған» идентификаторын дереккөзге міндетті гиперсілтемемен көрсету қажет — https://tilda.cc.
20__ жылғы «___» __________
Тильда