kirschbaum-development/bee-plugin-php-client

用于与Bee插件API交互的PHP客户端

0.3.1 2022-01-25 11:50 UTC

This package is auto-updated.

Last update: 2024-09-15 23:09:02 UTC


README

Latest Version on Packagist Actions Status MIT Licensed StyleCI Total Downloads

用于与Bee插件API交互的PHP客户端。这包括消息服务API和方便使用授权的方法。

安装

您可以通过composer安装此包

composer require kirschbaum-development/bee-plugin-php-client

用法

首先,您需要实例化Bee基类并设置API令牌。您可以通过登录到开发者门户并转到您的应用程序的“详情”来获取API令牌。

use KirschbaumDevelopment\Bee\Bee;

$bee = new Bee(new \GuzzleHttp\Client);
$bee->setApiToken('your-api-token-here');

使用消息服务API:HTML

此API允许您发布在Bee编辑器中生成的JSON内容,并返回JSON的渲染HTML。参考:https://docs.beefree.io/message-services-api-reference/#html

$beeEditorData = []; // this will be the JSON generated using the editor
$html = $bee->html($beeEditorData);

使用消息服务API:PDF

此API允许您发布HTML内容,并获取由HTML创建的PDF的URL。参考:https://docs.beefree.io/message-services-api-reference/#pdf

$pdf = $bee->pdf([
    'html' => $html, // HTML generated using the HTML API (required)
    'page_size' => 'Letter', // (optional)
    'page_orientation' => 'Landscape', // (optional)
]);

// then, you can call these methods:
$pdf->getUrl();
$pdf->getFilename();
$pdf->getPageSize();
$pdf->getPageOrientation();
$pdf->getContentType();

使用消息服务API:图片

此API允许您发布HTML内容,并获取由HTML创建的PDF的URL。参考:https://docs.beefree.io/message-services-api-reference/#image

$image = $bee->image([
    'html' => $html, // HTML generated using the HTML API (required)
    'width' => 500, // (required)
    'height' => 400, // (optional)
    'file_type' => 'jpg',
]);

// then, you can save the image content somewhere, some examples on how you may do this:
file_put_contents('/path/to/storage/image.jpg', $image);

// on Laravel with Storage object:
Storage::put('/path/to/storage/image.jpg', $image);

生成访问令牌

要初始化Bee编辑器,您可能需要一个访问令牌。您可以使用BeeAuth轻松生成。您可以通过登录到开发者门户并转到您的应用程序的“详情”来获取客户端ID和密钥。

use KirschbaumDevelopment\Bee\BeeAuth;

$beeAuth = new BeeAuth(new \GuzzleHttp\Client);
$beeAuth->setClientId('your-client-id-here');
$beeAuth->setClientSecret('your-client-secret-here');
$token = $beeAuth->generateToken();

// then you can use the following methods:
$token->getAccessToken();
$token->getRefreshToken();
$token->getExpires();

认证令牌有效期为5分钟。如果您想尽可能长时间地缓存令牌,您需要传递一个符合PSR-16的缓存实现。Laravel、Symfony以及所有主流框架都与此接口兼容。要启用缓存,您只需要调用setCache方法,传递一个Psr\SimpleCache\CacheInterface实现。

$beeAuth->setCache($cacheImplementation);

与Laravel一起使用

如果您使用Laravel,当您使用Laravel包发现时,BeePluginServiceProvider将被自动注册。否则,您可以手动注册以下提供者

'providers' => [
    // ...
    KirschbaumDevelopment\Bee\Laravel\BeePluginServiceProvider::class,
],

这将确保每次您通过Laravel容器请求KirschbaumDevelopment\Bee\Bee或KirschbaumDevelopment\Bee\BeeAuth(例如,app(Bee::class))时,Guzzle将自动注入,同时API令牌和客户端ID/密钥也将注入到类中。

配置值将从以下配置中提取:.services.bee。因此,我们将使用以下约定

API令牌:config('services.bee.api_token') 客户端ID:config('services.bee.client_id') 客户端密钥:config('services.bee.client_secret')

如果您不想使用此配置,您始终可以手动传递这些值。

在Laravel中缓存

Laravel 服务提供者也会自动在 BeeAuth 上注入 Laravel 的缓存实现,因此您的身份验证令牌将被缓存尽可能长时间。

使用 Laravel 进行测试

如果您正在编写集成测试,但不想您的测试向 Bee 发送请求以获取凭据,我们有一个小助手可以帮助您。只需运行以下代码

use KirschbaumDevelopment\Bee\Laravel\BeeAuthMock;

BeeAuthMock::init();

有了这个,每次您在代码中调用 BeeAuth::generateToken() 时,您都会收到与之前相同的响应,但带有一些伪造的令牌,并且不会进行任何 HTTP 请求。

测试

composer test

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何安全相关的问题,请通过电子邮件 rob@kirschbaumdevelopment.comnathan@kirschbaumdevelopment.com 而不是使用问题跟踪器。

致谢

赞助

本软件包的开发由专注于问题解决、团队建设和社区的 Kirschbaum Development Group 赞助。了解更多 关于我们加入我们

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件