cloudpdf / api
CloudPDF API 的包装器
Requires
- php: >=7.1.0
- ext-curl: *
- firebase/php-jwt: >=5.0.0
Requires (Dev)
- phpstan/phpstan: ^1.2
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许可证的条款下作为开源软件提供。