samayamx / embed-extractor
0.3.3
2021-02-09 22:23 UTC
Requires
- ext-curl: *
- ext-json: *
- symfony/dom-crawler: ^5.1
Requires (Dev)
- phpunit/phpunit: ^9.1
README
一个简单的类,用于提取支持OEmbed协议的第三方资源的嵌入属性。
目前我们仅支持具有发现链接的资源
安装
composer require samayamx/embed-extractor
需求
- cURL 获取资源
- ext-json 从 oembed 响应中提取数据
示例
您可以在控制器中轻松使用此简单服务
use Samaya\Embed\Extract; $extractor = new Extract( 'User-Agent-Cool', '1234567890123456', '0123456789abcdef0123456789abcdef' ); Route::get('/embed', function (Request $request) use ($extractor) { $url = $request->get('url'); try { $image = $extractor->getImage($url); $html = $extractor->getHtml($url); return response()->json(compact('url', 'html', 'image')); } catch (\DomainException $domainException) { // for Facebook "OpenGraph" errors return response()->json( ['message' => $domainException->getMessage()], $domainException->getCode() ); } catch (\Exception $exception) { // handle other exceptions as well return response( $exception->getMessage(), $exception->getCode() ); } });
如果您愿意,可以使用提供的 Laravel 门面或配置来提供具有所需参数的服务
use Samaya\Embed\Extract; // injected into the action handler: Route::get('/embed', function (Extract $extractor, Request $request) { // ... }); use Samaya\Embed\OEmbedExtract; // using the facade $image = OEmbedExtract::getImage($url); $html = OEmbedExtract::getHtml($url);
使用 Laravel 进行配置
要使用提供的门面或自动服务实例化,您需要在环境和/或发布配置中提供所需的秘密。
请参阅 .env.example
以获取默认环境变量的示例。
如果您需要调整标识符以避免与其他包冲突,请发布配置
php artisan vendor:publish --provider=Samaya\\Embed\\OEmbedExtractProvider --tag=config
支持
- Vimeo
- Youtube
- Samaya Share