フリップブックを作成する(PDFまたはURLから)

フリップブック

アップロードしたPDFから、またはサーバーがダウンロードするPDF URLからフリップブックを作成し、新しいアイテムのID、表示URL、更新されたプランのクォータを取得できます。

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

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

できること

PDFからフリップブックを作成する方法は、そのPDFがどこにあるかに応じて2つあります。

  • ファイルを直接アップロードする — PDFをmultipart/form-dataとして送ります。
  • URLを指定する — PDFのURLを渡し、サーバーにダウンロードさせます。

どちらの方法でも、ファイルが保存され、サムネイルが生成され、レコードが登録されて、新しいアイテムのID、表示URL、更新されたプランのクォータが返ってきます。返されたIDは、後続の呼び出し(set-meta、set-cta-primary、save-as-templateなど)に使ってください。

始める前に

  • APIキー — すべてのリクエストでX-Api-Keyヘッダー、またはAuthorization: Bearer YOUR_API_KEYとして送ります。
  • すべてのリクエストの送信先はベースURL https://go.fliplink.meです。
  • Flipbookを作成するかDocumentを作成するかは、任意のDocTypeフィールドで選びます。省略するかDocType=Flipbookを送るとフリップブック(デフォルト)、DocType=Documentを送るとドキュメントになります。FlipLinkは両方に対応しています。
  • 返されるクォータのフィールド(Flipbooks_Count / Flipbooks_Max / Flipbooks_Left)は、作成のプランのクォータを反映します。

どちらのエンドポイントもパスパラメーターを使いません。エンドポイント自体にPOSTして作成し、新しいIDを受け取ります。Create by Fileはmultipart/form-dataを使います。Create by URLはform-urlencoded(JSONではありません)です。

アップロードしたPDFから作成する

POST /api/create-by-fileは、multipart/form-dataとして送られたアップロード済みのPDFからフリップブックを作成します。ファイルが保存され、サムネイルが生成され、レコードが登録されます。必須フィールドはFileのみで、NameTitleDocTypeは任意です。最大ファイルサイズはプランごとです(who-am-iのMaxFileSizeMBを参照)。

curl -X POST 'https://go.fliplink.me/api/create-by-file' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -F 'File=@/path/to/file' \
  -F 'Name=My Document' \
  -F 'Title=My Title' \
  -F 'DocType=Flipbook'

DocTypeFlipbook(デフォルト)またはDocumentです。フリップブックではなくドキュメントを作成するには、DocType=Documentを送ってください。

レスポンス:

{
  "Result": "OK",
  "ID": "90001",
  "URL": "https://go.fliplink.me/view/<slug>",
  "Flipbooks_Count": 12,
  "Flipbooks_Max": 200,
  "Flipbooks_Left": 188
}

PDF URLから作成する

POST /api/create-by-urlは、PDFのURLからフリップブックを作成します。サーバーがFileURLをダウンロードし、S3にアップロードし、サムネイルを生成して、レコードを登録します。ボディはform-urlencodedです。必須フィールドはFileURLのみで、NameTitleDocTypeは任意です。

curl -X POST 'https://go.fliplink.me/api/create-by-url' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  --data-urlencode 'FileURL=https://example.com/document.pdf' \
  --data-urlencode 'Name=My Document' \
  --data-urlencode 'Title=My Title' \
  --data-urlencode 'DocType=Flipbook'

ソースURLは60秒以内に応答する必要があります。遅い、または到達できないソースはSource URL timed out after 60s.で失敗します。信頼性の低いソースには、/api/create-by-fileをおすすめします。

レスポンス:

{
  "Result": "OK",
  "ID": "90001",
  "URL": "https://go.fliplink.me/view/<slug>",
  "Flipbooks_Count": 12,
  "Flipbooks_Max": 200,
  "Flipbooks_Left": 188
}

起こりうるエラー

Create by File:

  • APIキーが欠けているか無効な場合 → HTTP 401。これはプレーンなUnauthorized HTMLページを返し、JSONボディはありません
  • アップロードしたファイルが読み取り可能なPDFでない場合 → HTTP 200、メッセージはFile is not a valid PDF.
  • アップロードがプランの最大ファイルサイズを超えた場合 → HTTP 413、メッセージはFile exceeds the maximum allowed upload size.

Create by URL:

  • APIキーが欠けているか無効な場合 → HTTP 401。これはプレーンなUnauthorized HTMLページを返し、JSONボディはありません
  • FileURLのホストがプライベートまたは許可されていない場合 → HTTP 200、メッセージはFileURL host is not allowed.
  • 不明またはスペルミスのボディフィールド → HTTP 200、メッセージはUnknown field(s) '…'. Expected: …

メモ

  • Flipbooks_Count / Flipbooks_Max / Flipbooks_Leftの値は、この作成後のプランのクォータを反映します。
  • 返されたIDは保持しておいてください。後続の呼び出し(set-meta、set-cta-primary、save-as-templateなど)に渡すものです。

関連ディスカッション