actengage / capture
Capture 的官方 SDK。
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- laravel/framework: ^9.0
Requires (Dev)
- mockery/mockery: ^1.5
- orchestra/testbench: ^7.3
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-06 18:27:16 UTC
README
本软件包提供 Capture 服务器的流畅 SDK。Capture 是一个运行在 AWS 上的 Node 服务器,可以以多种选项进行截图。在开始使用之前,此软件包需要访问 Capture 服务器端点。
需求
- Laravel ^9.1
- PHP ^8.1
- Guzzle ^7.0
- Capture 服务器端点
Capture 服务器
为什么 Capture 服务器端点不包括在软件包中?Capture 是一个私有的 Node 服务器,使用 Puppeteer 运行并具有一组特定的功能,这些功能用于我们的内部产品。我们不会发布 URL,因为它不是用于公共消费的。但是,您可以部署自己的 Capture 服务器和端点。
安装
通过 Composer 安装
composer require actengage/capture-sdk
发布配置文件
php artisan vendor:publish --tag=capture-config
在您的 ENV 文件中设置端点 URL。
CAPTURE_ENDPOINT=http://:3000/
基本用法
use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com')->request();
调用
调用允许在截图之前在 Puppeteer page
实例上执行方法。这是一种执行显式构建到服务器选项中的动作序列(主要用于边缘情况)的方便方式。第一个参数是方法名,其余参数都传递给 Puppeteer 中的方法。
use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->call('$', 'header#nav > .logo') ->request();
剪辑
使用 width
、height
、x
和 y
坐标来剪辑图像的一部分。默认情况下没有剪辑。
use Actengage\Capture\DataTypes\Clip; use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->clip(new Clip(800, 600, 400, 300)) ->request();
编码
编码更改响应的组成方式,使用 binary
或 base64
。默认为 binary
。
use Actengage\Capture\DataTypes\Encoding; use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->encoding(Encoding::Binary) ->request();
全页
获取全页截图。默认为 false
。
use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->fullPage(true) ->request();
头部
传递一个自定义头部,该头部由 Puppeteer 包含在其 HTTP 请求中。默认为 {"Accept-Language": "en-US"}
。
use Actengage\Capture\DataTypes\Encoding; use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->header('Accept-Language', 'en-US') ->request();
省略背景
这省略了透明 PNG 图像的黑色背景。默认为 true
。
use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->omitBackground(true) ->request();
质量
返回的图像质量。必须是 1-100
。默认为 100
。
use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->quality(100) ->request();
超时
Puppeteer 请求的超时时间(以毫秒为单位)。默认为 25000
。
use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->timeout(15000) ->request();
类型
返回的图像类型,jpeg
或 png
。默认为 jpeg
。
use Actengage\Capture\DataTypes\Type; use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->type(Type::PNG) ->request();
视口
视口尺寸。默认为 {"width": 1200, "height": 800}
。
use Actengage\Capture\DataTypes\Viewport; use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->viewport(new Viewport(1200, 800)) ->request();
等待直到
Puppeteer 在返回响应之前应等待多长时间。默认为 ['load', 'networkidle2']
。
use Actengage\Capture\DataTypes\WaitUntil; use Actengage\Capture\Facades\Screenshot; $response = Screenshot::make('https://google.com') ->waitUntil([WaitUntil::Load, WaitUntil::NetworkIdle2]) ->request();