Tilda API

Tilda プロジェクトと貴社ウェブサイトの自動統合
すべてのリクエストはGETメソッドで送信され、レスポンスはJSON形式で返される。

成功したレスポンスは以下の通り:
{
  "status": "FOUND",
  ...
}
エラーの返答はこうだ:
{
  "status": "ERROR",
  ...
}
回数制限あり:1時間あたり150件。
APIは、Tilda で作成されたコンテンツをあなたのウェブサイトと同期させるために使用されます。Tilda

すべてのコンテンツは、ユーザーに配布する前に、あなたのサーバーに保存する必要があります(画像、スクリプト、スタイルを含む)。Tilda APIサーバーに常にリクエストを送信して負荷を生じさせると、アカウントがブロックされ、API機能が無効になる可能性があります。

同期のアルゴリズムがうまく整理されていれば、リクエストは1~3回であるべきで、したがって、サーバーへのリクエストは1時間に150回あれば十分です。同期後、ページ上の何かを変更するまではリクエストはないはずで、その場合は再度情報を同期する必要がある。
始め方
API機能は、Tilda ビジネスプランのご契約者のみご利用いただけます。まず、公開鍵と秘密鍵を取得する必要があります。これらはTilda のAPIセクションで取得できます:サイト設定 → エクスポート → APIインテグレーション.
リクエスト一覧
プロジェクト一覧
/プロジェクトリスト

プロジェクト情報
/プロジェクト情報

プロジェクトページ一覧
/v1/getpageslist

ページ情報(+本文htmlコード)
/ページ情報

ページ情報(+全ページhtmlコード)
/v1/getpagefull

エクスポート用ページ情報 (+ body html-code)
/v1/getpageexport

エクスポート用のページ情報 (+ fullpage html-code)
/v1/getpagefullexport
https://api.tildacdn.info
各リクエストでは、publickeyと secretkey、そしてオプションでprojectidか pageidという変数を送る必要がある
各プロジェクトのサイト設定のエクスポートタブで、画像(export_imgpath)、JSファイル(export_jspath)、CSSファイル(export_csspath)のパス値を設定できます。
したがって、サーバー上に正確なページのコピーを作成したい場合は、サーバーに保存されるファイルへの相対パスまたは絶対パスを指定できます。
プロジェクトリストの取得
GET Request URL:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
GETリクエスト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": ""
    },
    ...
  ]
}
プロジェクト情報の入手
GET Request URL:
https://api.tildacdn.info/v1/getprojectinfo/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
GETリクエスト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.com",
    "export_csspath": "",
    "export_jspath": "",
    "export_imgpath": "",
    "indexpageid": "0",
    "customcsstext": "y",
    "favicon": "",
    "page404id": "0",
    "images": [
      {
        "from": "",
        "to": ""
      }
      ...
    ]
  }
}
Webサーバーの設定ファイルのサンプルを取得するには、リクエストURLにhtaccessまたはnginxの値を持つwebconfigパラメータを追加します。

nginxを使用している場合は、Webサーバーの設定ファイルのサーバー セクションに受信したサンプルを追加する必要があります。
プロジェクトページ一覧の取得
GET Request URL:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
GETリクエストURL:
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 Request URL:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
GETリクエストURL:
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 Request URL:
https://api.tildacdn.info/v1/getpagefull/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
GETリクエストURL:
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 Request URL:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
GETリクエストURL:
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 Request URL:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
GETリクエストURL:
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を通してファイルが更新されているかどうかを確認することはできません。
ウェブフック(またはコールバック)
同期は自動的に実行できます。これを行うには、"Publish "ボタンをクリックするたびに通知を含むリクエストが送信されるスクリプトのURLを指定します。

ウェブフックへのリンクは、プロジェクトのAPIセクションで指定できます:サイト設定 → エクスポート → APIインテグレーション:

パラメータ:pageid, projectid, published, publickey

ウェブフックはリクエストが受信されたことを確認する必要があります。成功したリクエストに対する期待されるレスポンスは "ok"
(PHPでは単に "ok "をechoします;)

Tilda サーバーが期待されるレスポンスを受け取らなかった場合、あなたのサーバーへのリクエストをさらに2回繰り返します(合計3回)。

リクエストは一度には送信されませんが、ページを公開してから1分から20分ほど遅れて送信されます。したがって、リクエストが一度に来なかった場合は、指定された時間内に来なかったことを確認する必要があります。
重要: サーバーからの最大応答待ち時間は5秒です。応答がない場合、接続は切断されます。そのため、この通知を保存してからcronなどで同期を行う必要があります。通常、ページに多くの画像がある場合、この時間では十分ではありません。

ハウツー
使用例
Tilda APIを使用する一般的なシナリオは2つあります:サーバー上のすべてのプロジェクトファイルのエクスポートと保存を自動化する必要がある場合と、Tilda で作成したページをウェブサイトのテンプレートと統合する必要がある場合です。
プロジェクト内の全ページをエクスポートする方法
私たちの目標は、Tilda アカウントで公開されたプロジェクトをローカルサーバーに保存することです。
  • サイト設定のエクスポート・タブで、画像、JSファイル、CSSファイルのパス(/images、/js、/cssなど)を指定します;
  • 必要なプロジェクトのprojectidを覚えておく;
  • サーバー上にスクリプトを作成し、APIにリクエストを送り、ファイルを作成し、そのファイルに情報を保存する;
  • サーバー上にファイルをコピーするフォルダを作る(画像、js、css)。
  1. getprojectinfo リクエストを送信して、必要なプロジェクトの情報を入手する。
  2. リクエスト・レスポンスで受け取った画像配列をループします。その中にファイルのリストがある。from 変数にファイルのソースアドレスが、to変数にファイルを保存するときに使うローカル名が格納されている。必要な場所にファイルをコピーしてください。これらのファイルはプロジェクト内のすべてのページで共通です。
  3. 前のリクエストにwebconfig パラメータを追加した場合は、.htaccessファイルを作成してwebconfig変数の値で埋めるか、nginxウェブサーバの設定ファイルのserver セクションにこの値を保存する必要があります。
  4. getpageslistリクエストを送信して、プロジェクト内の全ページのリストを取得する。
  5. 受け取ったページリストをループする。各ページについて
  • getpagefullexportリクエストを送信して、エクスポート用のページ情報を取得する;
  • ページで使用されている画像、スクリプト、スタイルを、imagesjscss配列からサーバーに保存する;
  • 新しいページ・ファイルを作成し(変数filenameの名前を使用)、html変数の値で埋める。

もし、Tilda のページをテンプレート(ヘッダー、メニュー、フッターなどがすでにある)に統合することが目的であれば、同じステップを踏んでください。 ページエクスポート リクエストを返します。テンプレートのコンテンツエリアに貼り付けることができるHTMLコードを返します。この場合、テンプレートにスクリプトとスタイルを手動で追加する必要があることに注意してください。
画像やJS / CSSファイルをコピーすることなく統合できます。

プロジェクトの負荷が高くなく、静的ファイルをサーバーに保存したくない場合は、HTMLコードを返すgetpageリクエストを使ってください。画像はTilda サーバーから読み込まれます。主なことは、テンプレートにJSファイルとCSSファイルを追加することを忘れないことです。これらのファイルのリストは、リクエスト・レスポンスのjs変数とcss変数で返されます。

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);
Tilda のサービス利用規約に従い、APIエクスポート機能を使用する場合は、エクスポートされるすべてのページで、ソースとしてhttps://tilda.ccへのリンクを持つ "Made onTilda" 識別子を提供する必要があります。
製造元
Tilda