ghanem / gfycat
一个提供 Laravel 与 Gfycat API 之间接口的包,包括 Gif。
Requires
- php: ^7.3|^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
README
一个提供 Laravel 与 Laravel 和 Gfycat 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