toneflix-code / cuttly-php
Cutt.ly 的 PHP 封装器。
Requires
- php: ^8.1|^8.2|^8.3
- guzzlehttp/guzzle: ^7.9
- symfony/http-client: ^6.4|^7.1
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- imanghafoori/php-imports-analyzer: ^1.0
- pestphp/pest: ^2.35
- phpstan/phpstan: ^1.12
- symfony/var-dumper: ^6.4|^7.1
README
Cutt.ly 是一个集所有功能于一体的链接管理平台。缩短您的链接,跟踪点击,并通过我们的全功能 URL 缩短器提升您的品牌。创建自定义短链接,生成二维码,构建链接生物页面,并通过调查收集反馈。今天就开始优化您的 URL 并看到效果!这个库旨在通过提供一个简单的 PHP 封装器来绕过 Cutt.ly API 实现。
请参阅 Cutt.ly API 文档 以获取详细的 API 使用说明,因为该软件包试图以最佳方式镜像 API。
如果您使用 Laravel,您可能还希望查看 Cuttly Laravel
要求
- PHP >= 8.1
- Guzzle, PHP HTTP 客户端 >= 7.1 - 自动通过 composer 安装
- PHP dotenv >= 5.6 - 自动通过 composer 安装
安装
您可以通过 composer 安装此软件包
composer require toneflix-code/cuttly-php
初始化
要开始使用此库,您需要在 .env 文件中配置 API 密钥,使用以下变量。
CUTTLY_API_KEY=your-cutt.ly-API-key
CUTTLY_TEAM_API_KEY=your-cutt.ly-API-key #[Optional] For users with team subscriptions.
如果您的项目没有 .env 文件,您可以在项目的根目录中创建一个。或者,您可以在初始化库时将 API 密钥作为参数传递。
使用 ENV 文件
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly();
不使用 ENV 文件
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly( apiKey: '121hksdSome23hRandom19212RegularApiKeyString55', teamApiKey: 'hksd092uSome00uRandom101nTeamApiKeyStrings31' );
初始化错误
如果没有提供 API 密钥,库将抛出 ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException 异常以及任何其他相关操作调用。
常规 API 使用
缩短 URL
要缩短一个 URL,只需调用链接到 Cuttly 实例的 regular() 方法的 shorten(string) 方法,将您要缩短的链接作为唯一参数传递。
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://toneflix.com.ng/learning'; $data = $cutly->regular()->shorten($link);
shorten() 方法返回一个 ToneflixCode\CuttlyPhp\Builders\ShortenResponse 实例,其中包含 API 返回请求的所有属性。
链式参数
我们花了很长时间确保在库中使用时,您可以首先访问 Cuttly 提供的每个可用功能,以下是可以作为方法链式调用的参数列表,以进一步自定义您的请求。
name(string): 您希望使用的短链接 - 别名 - 如果尚未被占用noTitle(): 更快的 API 响应时间 - 此参数禁用从源页面元标签获取页面标题,从而加快 API 响应时间。适用于团队企业计划。public(): 通过 API 设置缩短链接的公共点击统计信息userDomain(): 使用用户账户的域名,该账户已获得批准且状态为“激活”。
示例用法
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://toneflix.com.ng/learning'; $data = $cutly->regular()->name('toneflix101')->shorten($link);
请注意,shorten() 应仅在链的末尾调用。
编辑短链接
库还允许您编辑您创建的短链接。要编辑链接,只需调用链接到 Cuttly 实例的 regular() 方法的 edit(string) 方法,将您要编辑的短链接作为唯一参数传递。
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix101'; $data = $cutly->regular()->edit($link);
当然,上面的示例实际上什么也没做,会抛出一个 ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException 异常。要实际编辑链接,可以将以下任何方法链到您的调用中,然后就可以使用了。
name(string):新的别名/名称,如果尚未被占用。userDomain(): 使用用户账户的域名,该账户已获得批准且状态为“激活”。tag(string):要为缩短链接添加的标签。source(string):更改缩短链接的源URL。unique(0|1|15-1440):为缩短链接设置唯一的统计计数。title():它将更改缩短链接的URL标题。
示例用法
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix101'; $data = $cutly->regular()->name('toneflix404')->userDomain()->unique(1)->edit($link);
edit() 方法返回一个 ToneflixCode\CuttlyPhp\Builders\BaseResponse 实例,该实例包含API请求响应的所有属性,您可以在此处找到更多信息:[Cutt.ly API 文档](https://cutt.ly/api-documentation/regular-api)。
链接分析
为了访问URL统计信息,调用与 Cuttly 实例的 regular() 方法链在一起的 stats(string) 方法,将您打算获取分析的缩短链接作为唯一参数。
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix404'; $data = $cutly->regular()->stats($link);
stats() 方法返回一个 ToneflixCode\CuttlyPhp\Builders\StatsResponse 实例,该实例包含API请求响应的所有属性,您可以在此处找到更多信息:[Cutt.ly API 文档](https://cutt.ly/api-documentation/regular-api)。
删除缩短链接
要删除缩短链接,调用与 Cuttly 实例的 regular() 方法链在一起的 delete(string) 方法,将您打算删除的缩短链接作为唯一参数。
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix404'; $data = $cutly->regular()->delete($link);
delete() 方法返回一个 ToneflixCode\CuttlyPhp\Builders\BaseResponse 实例,该实例包含API请求响应的所有属性,您可以在此处找到更多信息:[Cutt.ly API 文档](https://cutt.ly/api-documentation/regular-api)。
团队API使用
团队API实现了与常规API相同的方法和可链方法,有一些例外,我们将在下面指出。
要使用团队API,而不是在 Cuttly 实例上调用 regular() 方法,我们将调用 team() 方法,您现在可以将我们突出显示的所有方法链起来使用团队API。
缩短链接
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://toneflix.com.ng/learning'; $data = $cutly->team()->name('toneflix301')->shorten($link);
编辑短链接
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix301'; $data = $cutly->team()->edit($link);
链接分析
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix301'; $data = $cutly->team()->stats($link);
删除缩短链接
use ToneflixCode\CuttlyPhp\Cuttly; $cutly = new Cuttly(); $link = 'https://cutt.ly/toneflix404'; $data = $cutly->team()->delete($link);
异常
ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException
ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyExceptionToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException 异常会在未提供API密钥或提供了无效API密钥时抛出。
ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException
ToneflixCode\CuttlyPhp\Exceptions\FailedRequestExceptionToneflixCode\CuttlyPhp\Exceptions\FailedRequestException 异常会在Cuttly API返回错误时抛出。
异常处理
当遇到异常时,您可以根据您的用例以最佳方式处理它。
use ToneflixCode\CuttlyPhp\Cuttly; use ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException; $cutly = new Cuttly(); try { $link = 'https://toneflix.com.ng/learning'; $data = $cutly->regular()->name('toneflix404')->shorten($link); } catch (FailedRequestException $th) { echo $th->getMessage(); }
use ToneflixCode\CuttlyPhp\Cuttly; use ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException; use ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException; try { $cutly = new Cuttly(); $link = 'https://toneflix.com.ng/learning'; $data = $cutly->regular()->name('toneflix404')->shorten($link); } catch (FailedRequestException|InvalidApiKeyException $th) { echo $th->getMessage(); }
有关从API中可获取的详细描述,请参阅Cutt.ly 文档。
测试
composer test
变更日志
请参阅CHANGELOG 了解最近有哪些更改。
贡献
请参阅CONTRIBUTING 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件code@toneflix.com.ng联系,而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件。