samayamx/embed-extractor

此包已被弃用,不再维护。作者建议使用embed/embed包代替。

原型,用于从第三方内容中提取基本嵌入属性

0.3.3 2021-02-09 22:23 UTC

This package is auto-updated.

Last update: 2021-06-01 20:02:11 UTC


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

支持

  • Facebook
  • Vimeo
  • Youtube
  • Samaya Share