ghanem / gfycat

一个提供 Laravel 与 Gfycat API 之间接口的包,包括 Gif。

v1.3 2021-08-12 16:38 UTC

This package is auto-updated.

Last update: 2024-09-12 23:26:50 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

一个提供 Laravel 与 LaravelGfycat API 之间接口的包,包括 Gif 和 Stickers。

安装

您可以通过 composer 安装此包

composer require ghanem/gfycat

现在您需要使用以下命令发布配置文件

php artisan vendor:publish --provider="Ghanem\Gfycat\GfycatServiceProvider" --tag="config"
参数
  • q - 搜索查询词或短语
  • s - 搜索查询词或短语
  • limit - (可选)返回的结果数量,最大 100。默认 25。
  • offset - (可选)结果偏移量,默认为 0。
  • rating - (可选)限制结果为已评分的项(y,g, pg, pg-13 或 r)。
  • lang - (可选)指定默认区域内容的国家;格式为 2 位 ISO 639-1 国家代码。请参阅支持的语言列表 此处

端点

Gifs

搜索

搜索所有 Gfycat GIF 以查找单词或短语。标点符号将被删除并忽略。在此情况下,$gfycats 是一个数组。

方法:Gfycat::search($query, $limit = 25, $offset = 0, $rating = null, $lang = null)

$gfycats = Gfycat::search('cat');

foreach ($gfycats->data as $gfycat) {
    // Get id
	$gfycat->id;

	// Get image original url
	$gfycat->images->original->url;

	// Get image original mp4 url
	$gfycat->images->original->mp4;

	//etc
}

您可以通过 dd($gfycats) 查看所有属性

{#162 ▼
  +"data": array:25 [▼
    0 => {#163 ▼
      +"type": "gif"
      +"id": "W80Y9y1XwiL84"
      +"slug": "gift-W80Y9y1XwiL84"
      +"url": "http://gfycat.com/gifs/gift-W80Y9y1XwiL84"
      ...
    }
    1 => {#182 ▶}
    2 => {#202 ▶}
    ...

翻译

翻译 API 利用搜索,但使用 Gfycat 的“特殊酱料”来处理从一种词汇到另一种词汇的翻译。

方法:Gfycat::translate($query, $rating = null, $lang = null)

$gfycat= Gfycat::translate('cat');

// Get id
$gfycat->data->id;

// Get image original url
$gfycat->data->images->original->url;

// Get image original mp4 url
$gfycat->data->images->original->mp4;

//etc

您可以通过 dd($gfycat) 查看所有属性

{#162 ▼
  +"data": {#163 ▼
    +"type": "gif"
    +"id": "3oz8xQQP4ahKiyuxHy"
    ...
    +"images": {#165 ▼
      ...
      +"original": {#180 ▼
        +"url": "http://media3.gfycat.com/media/3oz8xQQP4ahKiyuxHy/gfycat.gif"
        +"width": "480"
        +"height": "352"
        +"size": "3795005"
        +"frames": "33"
        +"mp4": "http://media3.gfycat.com/media/3oz8xQQP4ahKiyuxHy/gfycat.mp4"
        +"mp4_size": "132229"
        +"webp": "http://media3.gfycat.com/media/3oz8xQQP4ahKiyuxHy/gfycat.webp"
        +"webp_size": "756840"
      }
      ...

热门

获取当前在线热门的 GIF。在此情况下,$gfycats 是一个数组。

方法:Gfycat::trending($limit = 25, $rating = null)

$gfycats = Gfycat::trending();

foreach ($gfycats->data as $gfycat) {
    // Get id
	$gfycat->id;

	// Get image original url
	$gfycat->images->original->url;

	// Get image original mp4 url
	$gfycat->images->original->mp4;

	//etc
}

您可以通过 dd($gfycats) 查看所有属性

{#162 ▼
  +"data": array:25 [▼
    0 => {#163 ▼
      +"type": "gif"
      +"id": "l2SqiAELInKQ8rF0Q"
      +"slug": "2dopequeens-podcast-2-dope-queens-l2SqiAELInKQ8rF0Q"
      +"url": "http://gfycat.com/gifs/2dopequeens-podcast-2-dope-queens-l2SqiAELInKQ8rF0Q"
      ...
    }
    1 => {#183 ▶}
    2 => {#203 ▶}
    ...

随机

返回一个受标签限制的随机 GIF。

方法:Gfycat::random($query, $rating = null)

$gfycat = Gfycat::random('cat');

// Get id
$gfycat->data->id;

// Get image original url
$gfycat->data->image_original_url;

// Get image mp4 url
$gfycat->data->image_mp4_url;

//etc

您可以通过 dd($gfycat) 查看所有属性

{#162 ▼
  +"data": {#163 ▼
    +"type": "gif"
    +"id": "qbpRDgYI5JoKk"
    +"url": "http://gfycat.com/gifs/cat-qbpRDgYI5JoKk"
    +"image_original_url": "https://media0.gfycat.com/media/qbpRDgYI5JoKk/gfycat.gif"
    ...
  }
  +"meta": {#164 ▼
    +"status": 200
    +"msg": "OK"
  }
}

按 ID

通过 GIF ID 返回 GIF 的元数据。

方法:Gfycat::getByID($id)

$gfycat= Gfycat::getByID('qbpRDgYI5JoKk');

// Get id
$gfycat->data->id;

// Get image original url
$gfycat->data->images->original->url;

// Get image original mp4 url
$gfycat->data->images->original->mp4;

//etc

您可以通过 dd($gfycat) 查看所有属性

{#162 ▼
  +"data": {#163 ▼
    +"type": "gif"
    +"id": "qbpRDgYI5JoKk"
    ...
    +"images": {#164 ▼
      ...
      +"original": {#179 ▼
        +"url": "https://media1.gfycat.com/media/qbpRDgYI5JoKk/gfycat.gif"
        +"width": "500"
        ...

按 IDs

get GIF by ID 端点的多版本。在此情况下,$gfycats 是一个数组。

方法:Gfycat::getByIDs(array $ids)

$gfycats = Gfycat::getByIDs(['qbpRDgYI5JoKk','FiGiRei2ICzzG']);

foreach ($gfycats->data as $gfycat) {
    // Get id
	$gfycat->id;

	// Get image original url
	$gfycat->images->original->url;

	// Get image original mp4 url
	$gfycat->images->original->mp4;

	//etc
}

您可以通过 dd($gfycats) 查看所有属性

{#162 ▼
  +"data": array:2 [▼
    0 => {#163 ▼
      +"type": "gif"
      +"id": "qbpRDgYI5JoKk"
      +"slug": "cat-qbpRDgYI5JoKk"
      ...
    }
    1 => {#182 ▼
      +"type": "gif"
      +"id": "FiGiRei2ICzzG"
      +"slug": "funny-cat-FiGiRei2ICzzG"
      ...

Stickers

Stickers 的方法与 Gfycat 类似,因此我将省略 dd() 的示例,但您也可以使用它来查看对象的全部属性。

Sticker 搜索

搜索所有 Sticker 以查找单词或短语。标点符号将被删除并忽略。在此情况下,$stickers 是一个数组。

方法:Stickers::search($query, $limit = 25, $offset = 0, $rating = null, $lang = null)

$stickers = Stickers::search('dog');

foreach ($stickers->data as $sticker) {
    // Get id
	$sticker->id;

	// Get image original url
	$sticker->images->original->url;

	// Get image original mp4 url
	$sticker->images->original->mp4;

	//etc
}

Sticker 翻译

翻译 API 利用搜索,但使用 Stickers 的“特殊酱料”来处理从一种词汇到另一种词汇的翻译。

方法:Stickers::translate($query, $rating = null, $lang = null)

$sticker= Stickers::translate('cat');

// Get id
$sticker->data->id;

// Get image original url
$sticker->data->images->original->url;

// Get image original mp4 url
$sticker->data->images->original->mp4;

//etc

Sticker 热门

获取当前在线热门的 Stickers。在此情况下,$stickers 是一个数组。

方法:Stickers::trending($limit = 25, $rating = null)

$stickers = Stickers::trending();

foreach ($stickers->data as $sticker) {
    // Get id
	$sticker->id;

	// Get image original url
	$sticker->images->original->url;

	// Get image original mp4 url
	$sticker->images->original->mp4;

	//etc
}

Sticker 随机

返回一个受标签限制的随机 Sticker。

方法:Stickers::random($query, $rating = null)

$sticker = Stickers::random('cat');

// Get id
$sticker->data->id;

// Get image original url
$sticker->data->image_original_url;

// Get image mp4 url
$sticker->data->image_mp4_url;

//etc