カスタムドメイン(CNAME)を設定する

カスタムドメイン

すでに有効化済みのカスタムドメインをフリップブックに紐づけ、アカウント上のすべてのCNAMEを一覧表示し、CNAMEの紐づけを1つまたはすべてのフリップブックから削除できます。

このディスカッションで使うAPI

このガイドに誤りや古い情報がありますか?

できること

カスタムドメイン(CNAME)を使うと、docs.example.comのように自分が所有するホスト名でフリップブックを配信できます。ドメインをWebダッシュボードで追加・検証したら、これら3つのエンドポイントで、そのドメインとフリップブックの紐づけをAPIから管理できます。

  • フリップブックにCNAMEの紐づけを追加する。
  • アカウント上のすべてのCNAMEを、それぞれが紐づいているフリップブックとともに一覧表示する。
  • CNAMEの紐づけを1つのフリップブックから、または一度にすべてのフリップブックから削除する。

始める前に

  • APIキー — すべてのリクエストでX-Api-Keyヘッダー(またはAuthorization: Bearer YOUR_API_KEY)として送ります。
  • すべてのリクエストの送信先はベースURL https://go.fliplink.meです。
  • CNAMEの追加は、{flipbookId}パスセグメント(create-by-file/create-by-urlや一覧が返す数値ID)で特定のフリップブックを対象にします。一覧削除{flipbookId}パスパラメーターを使いません。
  • CNAMEはすでにアカウント上に存在し、有効化されている必要があります。Webダッシュボードで追加・検証すると、DNSとSSLがプロビジョニングされます。APIは紐づけを保存するだけで、DNSの検証や証明書の発行は行いません。
  • CNAMEの追加では、リクエストボディはform-urlencoded(JSONではありません)です。

フリップブックにCNAMEを追加する

すでに有効化済みのカスタムドメインをフリップブックにリンクします。完全なホスト名をCNAMEとして渡します。IsCloudflareは任意で、デフォルトは0です。DNSがCloudflareのプロキシ経由の場合は1を渡してください。

curl -X POST 'https://go.fliplink.me/api/add-cname/96216' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  --data-urlencode 'CNAME=docs.example.com' \
  --data-urlencode 'IsCloudflare=0'

レスポンス:

{
  "Result": "OK",
  "Message": "Updated successfully"
}

ドメインが先にアカウント上で有効化されていない場合、リクエストは次のように拒否されます。 Please add CNAME <domain> to your account using the web dashboard. Only activated CNAMEs are allowed to be created via API.

CNAMEを一覧表示する

呼び出し元のすべてのカスタムCNAMEを返します。各アイテムには、ホスト名、それに紐づくアクティブなフリップブックの数(Documents)、そのアクティブなフリップブックIDのリスト(FlipbookIDs)が含まれます。

curl -X GET 'https://go.fliplink.me/api/list-cnames' \
  -H 'X-Api-Key: YOUR_API_KEY'

レスポンス:

{
  "Result": "OK",
  "Items": [
    {
      "CNAME": "ttr.antifragile.ae",
      "Documents": 1,
      "FlipbookIDs": [
        93270
      ]
    }
  ]
}

CNAMEの紐づけを削除する

カスタムドメインの紐づけを、1つまたはすべてのフリップブックから削除します。2つのモードがあります。

  • 一括(デフォルト): CNAME=<host>を渡し、FlipbookIDを空のままにします。そのCNAMEを、所有するすべてのフリップブックから削除します。
  • フリップブックごと: FlipbookID=<id>(0より大きい値)を渡します。そのフリップブックからCNAMEを検索し、そのフリップブックからのみ削除します。

ホスト名のドットによる問題を避けるため、CNAMEはURLセグメントではなくクエリパラメーターとして渡してください。

curl -X DELETE 'https://go.fliplink.me/api/delete-cname?CNAME=docs.example.com&FlipbookID=' \
  -H 'X-Api-Key: YOUR_API_KEY'

上のcurlは一括モード(FlipbookIDは空)で実行されるので、レスポンスは次のようになります。

{
  "Result": "OK",
  "Message": "CNAME removed successfully"
}

フリップブックごとのモード(FlipbookIDが0より大きい)では、メッセージは代わりに{ "Result": "OK", "Message": "CNAME removed from flipbook successfully" }になります。CNAMEFlipbookIDのどちらも渡さない場合、レスポンスは{ "Result": "ERROR", "Message": "CNAME or FlipbookID is required" }になります。

起こりうるエラー

  • APIキーが欠けているか無効な場合 → HTTP 401。これはプレーンなUnauthorized HTMLページを返し、JSONボディはありませんX-Api-Keyヘッダーが存在し、正しいことを確認してください。
  • 不明なflipbookId(またはキーが所有していないもの)、CNAMEの追加時 → HTTP 200{ "Result": "ERROR", "Message": "Item not found" }
  • 不明またはスペルミスのボディフィールド、CNAMEの追加時 → HTTP 200{ "Result": "ERROR", "Message": "Unknown field(s) '…'. Expected: …" }
  • CNAMEFlipbookIDのどちらも渡さずに削除した場合{ "Result": "ERROR", "Message": "CNAME or FlipbookID is required" }

メモ

  • APIでCNAMEを追加しても、紐づけを保存するだけで、DNSの検証や証明書の発行は行いません。先にWebダッシュボードでドメインを追加・検証してください。
  • CNAMEは、プランのCNAME上限の範囲内である必要があります。