actengage/capture

Capture 的官方 SDK。

v0.9.2 2022-07-06 14:08 UTC

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 服务器和端点。

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();

剪辑

使用 widthheightxy 坐标来剪辑图像的一部分。默认情况下没有剪辑。

use Actengage\Capture\DataTypes\Clip;
use Actengage\Capture\Facades\Screenshot;

$response = Screenshot::make('https://google.com')
    ->clip(new Clip(800, 600, 400, 300))
    ->request();

编码

编码更改响应的组成方式,使用 binarybase64。默认为 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();

类型

返回的图像类型,jpegpng。默认为 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();