kirschbaum-development/bee-plugin-php-client
用于与Bee插件API交互的PHP客户端
Requires
- php: ^7.1|^8.0
- guzzlehttp/guzzle: ^6.3|^7.0
Requires (Dev)
- cache/array-adapter: ^1.0
- phpunit/phpunit: ^7.0|^9.0
README
用于与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.com 或 nathan@kirschbaumdevelopment.com 而不是使用问题跟踪器。
致谢
赞助
本软件包的开发由专注于问题解决、团队建设和社区的 Kirschbaum Development Group 赞助。了解更多 关于我们 或 加入我们!
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。