CloudPDF API 的包装器

v1.0.2 2022-06-15 10:35 UTC

This package is not auto-updated.

Last update: 2024-10-02 21:37:29 UTC


README

PHP 包装器用于 CloudPDF API - 一种基于云的 PDF 管理服务。

安装

使用以下命令安装包

composer require cloudpdf/api

要使用绑定,请通过 Autoload 加载它

require_once('vendor/autoload.php');

用法

目录

身份验证

从您的 CloudPDF 控制台 → 设置 → API 密钥获取项目的 API 密钥。

$config = array(
  'apiKey' => 'YOUR API KEY',
  'cloudName' => 'YOUR CLOUD NAME',
  'signingSecret' => 'YOUR SIGNING SECRET'
);

$cloudpdf = new CloudPDF\Client($config);

账户信息

返回与此 API 密钥关联的账户信息。

$cloudpdf->account()

文档

创建文档

在您可以将 PDF 上传到 CloudPDF 之前,您必须创建一个新的文档。

服务器将返回一个预先签名的 Amazon 上传 URL,您可以使用 PUT 请求在该 URL 上上传您的 PDF 文件

上传文件后,您必须通知我们的服务器上传已完成,我们将使用我们的 PDF 引擎处理 PDF。

$cloudpdf.createDocument([
  "name" => "your_document_name.pdf",
  "description" => "Description of your document",
  "tags" => ["tag1", "tag2"],
  "defaultPermissions" => [
    "download" => "Allowed",
    "search" => true,
    "selection" => false,
    "info" => ["email", "phone"]
  ]
])
选项
  • name: 您要上传的 PDF 的名称 (string)
  • description: 您要上传的 PDF 的描述 (string)
  • parentId: 您要创建文档的文件夹的 ID (string)
  • tags: 在文档上设置标签,以便以后轻松过滤和搜索文档 (array)
  • defaultPermissions: 设置此文档的默认权限。您可以在 API 文档 中找到所有参数。如果没有提供任何参数,我们将使用组织的默认权限。您可以在仪表板 → 设置 → 上传设置中更改组织的默认权限。(object)

获取文档

$cloudpdf.getDocument("DOCUMENT ID")

更新文档

$cloudpdf.updateDocument("DOCUMENT ID", [
  "name" => "your_document_name.pdf",
  "description" => "Description of your document",
  "tags" => ["tag1", "tag2"],
  "defaultPermissions" => [
    "download" => "Allowed",
    "search" => true,
    "selection" => false,
    "info" => ["email", "phone"]
  ]
])
选项
  • name: 您要上传的 PDF 的名称 (string)
  • description: 您要上传的 PDF 的描述 (string)
  • parentId: 您要创建文档的文件夹的 ID (string)
  • tags: 在文档上设置标签,以便以后轻松过滤和搜索文档 (array)
  • defaultPermissions: 设置此文档的默认权限。您可以在 API 文档 中找到所有参数。如果没有提供任何参数,我们将使用组织的默认权限。您可以在仪表板 → 设置 → 上传设置中更改组织的默认权限。(object)

删除文档

$cloudpdf.deleteDocument("DOCUMENT ID")

上传文件

在您创建文档后,您将收到一个 Amazon 签名的 URL,您可以使用 PUT 请求在该 URL 上上传您的 PDF 文件。我们建议直接从客户端浏览器上传文件,以节省服务器负载。以下是一个使用 TypeScript 中的 axios 的示例。

文件上传完成后,您必须通知我们的服务器

import axios from 'axios';

axios.put(signedUploadURL, file, {
  headers: {
    "Content-Type": "application/pdf"
  },
  onUploadProgress: (e) => {
    //  Show progress
    const percentComplete = Math.round((e.loaded * 100) / e.total);
    console.log(percentComplete);
  },
});

上传文件完成

在您将文件上传到 Amazon S3 之后,您必须在此端点上通知我们的服务器上传已完成。在成功请求后,文档的状态将从“等待上传”更改为“处理中”。

您可以通过GET 端点轮询以获取状态更新,或使用 webhook 来找出您的文档是否已通过我们的 PDF 引擎完成处理。

$cloudpdf.uploadDocumentFileComplete("DOCUMENT ID", "FILE ID", ["uploadCompleted" => true])

获取文件

$cloudpdf.getDocumentFile("DOCUMENT ID", "FILE ID")

Webhooks

Webhooks 用于通知您的系统特定的 CloudPDF 事件。

创建 Webhook

$cloudpdf.createWebhook([
  "name" => "Webhook 1",
  "url" => "https://urltotrigger.com/",
  "events" => ["document.created"],
  "headers" => [
    "Authorization" => "Bearer secret"
  ]
])
选项
  • name: 您的 webhook 的名称,供您参考 (string)
  • url: 当触发事件时 webhook 应该触发的 URL (string)
  • secret:可选的密钥,可用于保护webhook端点(字符串
  • events:事件数组。可能的值有:document.created、document.updated、collection.created、collection.updated、tracker.new、lead.new、file.processed(《数组》)
  • headers:对象,包含要作为请求头发送的头部键和值(《对象》)

获取Webhook

$cloudpdf.getWebhook("WEBHOOK ID")

更新Webhook

$cloudpdf.updateWebhook("WEBHOOK ID", [
  "name" => "Webhook 1",
  "url" => "https://urltotrigger.com/",
  "events" => ["document.created"],
  "headers" => [
    "Authorization" => "Bearer secret"
  ]
])
选项
  • name: 您的 webhook 的名称,供您参考 (string)
  • url: 当触发事件时 webhook 应该触发的 URL (string)
  • secret:可选的密钥,可用于保护webhook端点(字符串
  • events:事件数组。可能的值有:document.created、document.updated、collection.created、collection.updated、tracker.new、lead.new、file.processed(《数组》)
  • headers:对象,包含要作为请求头发送的头部键和值(《对象》)

删除Webhook

$cloudpdf.deleteWebhook("WEBHOOK ID")

列出所有Webhook

$cloudpdf.listWebhooks()

贡献

欢迎在GitHub上提交错误报告和pull请求:https://github.com/cloudpdf-io/cloudpdf-php

许可

该仓库在MIT许可证的条款下作为开源软件提供。