フリップブックを作成する(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のみで、Name、Title、DocTypeは任意です。最大ファイルサイズはプランごとです(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'
DocTypeはFlipbook(デフォルト)または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のみで、Name、Title、DocTypeは任意です。
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のホストがプライベートまたは許可されていない場合 → HTTP200、メッセージは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など)に渡すものです。