Tilda API

独自のWebサイトとの自動Tildaプロジェクト統合
すべてのリクエストは GET メソッドを使用して送信され、レスポンスは JSON 形式で返されます。

正常な応答は次のとおりです。
{
  "ステータス": "見つかりました",
  ...
}
エラー応答は次のとおりです。
{
  "ステータス": "エラー",
  ...
}
リクエスト数には制限があります: 1 時間あたり 150 件です。
APIは、Tildaで作成されたコンテンツをWebサイトと同期するために使用されます。Tildaサーバーに、ユーザーがWebサイトにアクセスするたびにデータを取得するように要求することは禁じられています。

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

同期のアルゴリズムが適切に構成されている場合、1 ~ 3 つの要求があるはずです。したがって、1 時間あたりサーバーへの 150 の要求で十分です。ページで何かを変更するまで、同期後はリクエストが発生しないはずです。この場合、情報を再度同期する必要があります。
開始方法
API機能は、Tildaビジネスプランの加入者のみが利用できることに注意してください。まず、公開鍵と秘密鍵を取得する必要があります。これらは、TildaのAPIセクションで入手できます:サイト設定→エクスポート→API統合。
依頼一覧
プロジェクト一覧
/v1/getprojectslist

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

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

ページ情報 (+本文の HTML コード)
/v1/getpage

ページ情報 (+フルページのHTMLコード)
/v1/getpagefull

エクスポート用のページ情報(+本文のHTMLコード)
/v1/getpageexport

エクスポート用のページフル情報(+フルページhtmlコード)
/v1/getpagefullexport
すべての要求の URL: https://api.tildacdn.info
各リクエストでは、公開鍵秘密鍵の変数を送信する必要があり、オプションでリクエストに応じてprojectidまたはpageidを送信する必要があります。
画像 (export_imgpath)、JS ファイル (export_jspath)、CSS ファイル (export_csspath) のパス値は、すべてのプロジェクトの [サイトの設定] の [エクスポート] タブで設定できます。
したがって、サーバー上に正確なページのコピーを作成する場合は、サーバーに格納されるファイルへの相対パスまたは絶対パスを指定できます。
プロジェクトのリストを取得する
要求 URL の取得:
https://api.tildacdn.info/v1/ getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
GET リクエスト URL:
https://api.tildacdn.info/v1/getprojectslist/?publickey=00000000000000000000&secretkey=00000000000000000000
JSON 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": [
    {
      "id": "0",
      "タイトル": "最初のプロジェクト",
      "説明": "いくつかの情報"
    },
    {
      "id": "1",
      "タイトル": "セカンドプロジェクト",
      "descr": ""
    },
    ...
  ]
}
プロジェクト情報の取得:
要求 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 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": {
    "id": "0",
    "タイトル": "プロジェクトタイトル",
    "descr": "",
    "カスタムドメイン": "project.com",
    "export_csspath": "",
    "export_jspath": "",
    "export_imgpath": "",
    "インデックスページID": "0",
    "カスタムテキスト": "y",
    "ファビコン": "",
    "page404id": "0",
    "画像": [
      {
        "from": "",
        "to": ""
      }
      ...
    ]
  }
}
ウェブサーバーの構成ファイルのサンプルを取得するには、htaccess または nginx 値を指定して webconfig パラメーターを要求 URL に追加します。

nginxを使用する場合は、受信したサンプルをWebサーバーの構成ファイルのサーバーセクションに追加する必要があります。
プロジェクト ページのリストを取得する
要求 URL の取得:
https://api.tildacdn.info/v1/ getpageslist/?publickey=0000000000000000000&secretkey=000000000000000000000&projectID=0
GET リクエスト URL:
https://api.tildacdn.info/v1/getpageslist/?publickey=00000000000000000000&secretkey=00000000000000000000&projectid=0
JSON 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": [
    {
      "id": "1001",
      "プロジェクト ID": "0",
      "タイトル": "ページタイトルが最初",
      "descr": "",
      "img": "",
      "featureimg": "",
      "エイリアス": "",
      "日付": "2014-05-16 14:45:53",
      "ソート": "80",
      "公開済み": "1419702868",
      "ファイル名": "ページ1001.html"
    },
    {
      "id": "1002",
      "プロジェクト ID": "0",
      "タイトル": "ページタイトル2番目",
      "descr": "",
      "img": "",
      "featureimg": "",
      "エイリアス": "",
      "日付": "2014-05-17 10:50:00",
      "ソート": "90",
      "公開済み": "1419702277",
      "ファイル名": "ページ1002.html"
    },
    ...
  ]
}
ページ情報の取得
+ 本文のHTMLコード
要求 URL の取得:
https://api.tildacdn.info/v1/ getpage/?publickey=00000000000000000000&secretkey=0000000000000000000&pageid=1001
GET リクエスト URL:
https://api.tildacdn.info/v1/getpage/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
JSON 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": {
    "id": "1001",
    "プロジェクト ID": "0",
    "タイトル": "ページタイトル",
    "descr": "",
    "img": "",
    "featureimg": "",
    "エイリアス": "",
    "日付": "2014-05-16 14:45:53",
    "ソート": "80",
    "公開済み": "1419702868",
    "html": "いくつかのHTMLページコード",
    "ファイル名": "ページ1001.html",
    "js": [
      ...
    ],
    "css": [
      ...
    ]
  }
}
ページ情報の取得
+ 完全な HTML コード
要求 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 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": {
    "id": "1001",
    "プロジェクト ID": "0",
    "タイトル": "ページタイトル",
    "descr": "",
    "img": "",
    "featureimg": "",
    "エイリアス": "",
    "日付": "2014-05-16 14:45:53",
    "ソート": "80",
    "公開済み": "1419702868",
    "html": "いくつかのHTMLページコード",
    "ファイル名": "ページ1001.html"
  }
}
エクスポートするページ情報の取得
+ ボディページのHTMLコード
要求 URL の取得:
https://api.tildacdn.info/v1/ getpageexport/?publickey=0000000000000000000&secretkey=0000000000000000000&pageID=1001
GET リクエスト URL:
https://api.tildacdn.info/v1/getpageexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
JSON 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": {
    "id": "1001",
    "プロジェクト ID": "0",
    "タイトル": "ページタイトル",
    "descr": "",
    "img": "",
    "featureimg": "",
    "エイリアス": "",
    "日付": "2014-05-16 14:45:53",
    "ソート": "80",
    "公開済み": "1419702868",
    "画像": [
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      }
    ],
    "html": "ファイルへのローカルリンクを含むボディページのHTMLコード",
    "ファイル名": "ページ1001.html"
  }
}
大事な: このリクエストを使用するたびに、更新されたページ静的ファイル(スクリプトとスタイル)をダウンロードして保持することをお勧めします。これらのファイルは常に変化しており、ファイルがAPIを介して更新されているかどうかを確認することはできません。
エクスポートするページ情報の取得
+ フルページのHTMLコード
要求 URL の取得:
https://api.tildacdn.info/v1/ getpagefullexport/?publickey=0000000000000000000&secretkey=00000000000000000000&pageID=1001
GET リクエスト URL:
https://api.tildacdn.info/v1/getpagefullexport/?publickey=00000000000000000000&secretkey=00000000000000000000&pageid=1001
JSON 形式の応答:
{
  "ステータス": "見つかりました",
  "結果": {
    "id": "1001",
    "プロジェクト ID": "0",
    "タイトル": "ページタイトル",
    "descr": "",
    "img": "",
    "featureimg": "",
    "エイリアス": "",
    "日付": "2014-05-16 14:45:53",
    "ソート": "80",
    "公開済み": "1419702868",
    "画像": [
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      },
      {
        "from": "",
        "to": ""
      }
    ],
    "html": "ファイルへのローカルリンクを含むフルページのHTMLコード",
    "ファイル名": "ページ1001.html"
  }
}
大事な: このリクエストを使用するたびに、更新されたページ静的ファイル(スクリプトとスタイル)をダウンロードして保持することをお勧めします。これらのファイルは常に変化しており、ファイルがAPIを介して更新されているかどうかを確認することはできません。
Webhook (またはコールバック)
同期は自動的に実行できます。これを行うには、[公開]ボタンをクリックするたびに通知付きのリクエストが送信されるスクリプトURLを指定します。このようにして、コンテンツを更新したり、サーバーに新しいページを追加したりできます。

プロジェクトの API セクションで Webhook へのリンクを指定できます: サイトの設定 → エクスポート → API 統合:
通知は GET メソッドを使用して送信されます。
パラメータ: pageid, projectid, published, publickey, 公開

Webhook は、リクエストが受信されたことを確認する必要があります。成功した要求に対して予想される応答は "ok" です
(PHPでは、単に "ok"をエコーします;)

Tildaサーバーが期待どおりの応答を受け取らない場合、サーバーへのリクエストを繰り返すためにさらに2回試行されます(合計3つのリクエスト)。

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

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

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

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

PHP を使用した簡単なリクエストの例:
$result = file_get_contents('https://api.tildacdn.info/v1/getprojectinfo/?publickey=000000000000000000&secretkey=0000000000000000000&projectid=0');
$project = json_decode($result, 真);
print_r($project)
Tilda のサービス利用規約に従って、API エクスポート機能を使用する場合は、エクスポートされるすべてのページでソースとしてhttps://tilda.ccへのリンクを含む「Made on Tilda」識別子を提供する必要があります。
作成日
Tilda