peranetwork / viewstats-api
ViewStats API的PHP包装器
1.0.0
2024-09-30 13:35 UTC
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- ext-openssl: *
This package is not auto-updated.
Last update: 2024-10-01 12:48:49 UTC
README
这个PHP包装器提供了一个易于使用的接口,用于与ViewStats API交互。它处理身份验证、请求发送和响应处理,包括解密加密响应。
ViewStats是一个用于跟踪和分析YouTube频道统计的平台。该API提供了访问各种数据点的权限,包括频道信息、视频统计等。
地址: ViewStats
特性
- 用于向ViewStats API发送GET和POST请求的简单界面
- 自动处理身份验证令牌
- 内置错误处理和日志记录
- 解密加密的API响应
- 易于集成到现有PHP项目中
要求
- PHP 7.4或更高版本
- cURL扩展
- OpenSSL扩展
安装
您可以通过Composer安装此包
composer require peranetwork/viewstats-api
使用方法
基本使用
require 'vendor/autoload.php'; use ViewStatsWrapper\ViewStatsAPI; $apiToken = '32ev9m0qggn227ng1rgpbv5j8qllas8uleujji3499g9had6oj7f0ltnvrgi00cq'; $api = new ViewStatsAPI($apiToken); try { $popularChannels = $api->get('/channels/popular', ['total' => 1]); print_r($popularChannels); } catch (\ViewStatsWrapper\Exceptions\APIException $e) { echo "API Error: " . $e->getMessage(); } catch (\ViewStatsWrapper\Exceptions\DecryptionException $e) { echo "Decryption Error: " . $e->getMessage(); }
发送GET请求
$params = ['param1' => 'value1', 'param2' => 'value2']; $response = $api->get('/endpoint', $params);
发送POST请求
$data = ['key1' => 'value1', 'key2' => 'value2']; $response = $api->post('/endpoint', $data);
API端点
以下是您可以使用此包装器的一些示例端点
GET请求
-
频道信息
$api->get('/channels/@delba');
-
频道简介
$api->get('/channels/@delba/aboutMe');
-
频道统计
$api->get('/channels/@delba/stats', [ 'range' => '28', 'groupBy' => 'daily', 'sortOrder' => 'ASC', 'withRevenue' => 'true', 'withEvents' => 'true', 'withBreakdown' => 'false', 'withToday' => 'false' ]);
-
频道所有时间统计
$api->get('/channels/@delba/stats', [ 'range' => 'alltime', 'groupBy' => 'daily', 'sortOrder' => 'ASC', 'withRevenue' => 'true', 'withEvents' => 'false', 'withBreakdown' => 'false' ]);
-
月度频道统计
$api->get('/channels/@delba/stats', [ 'range' => '365', 'groupBy' => 'monthly', 'sortOrder' => 'ASC', 'withRevenue' => 'true', 'withEvents' => 'true', 'withBreakdown' => 'false', 'withToday' => 'false' ]);
-
长视频和短视频
$api->get('/channels/@delba/longsAndShorts');
-
特色视频
$api->get('/channels/@delba/featuredVideo');
-
频道平均值
$api->get('/channels/@delba/averages');
-
频道视频
$api->get('/channels/@delba/videos', [ 'orderBy' => 'uploadDate', 'limit' => '40', 'offset' => '0', 'withThumbnail' => 'true', 'type' => 'lf' ]);
-
频道预测
$api->get('/channels/@delba/projections/milestones');
-
相似频道
$api->get('/channels/@delba/similar');
-
热门频道
$api->get('/channels/popular', ['total' => '6']);
POST请求
-
频道排名
$api->post('/rankings/channels', [ 'interval' => 'weekly', 'sortBy' => 'subs', 'made_for_kids' => true, 'show_music' => true, 'category_id' => null, 'country' => null, 'show_movies' => true ]);
-
视频排名
$api->post('/rankings/videos', [ 'interval' => 7, 'includeKids' => true, 'includeMusic' => true, 'country' => 'all', 'categoryId' => 9999, 'videoFormat' => 'all' ]);
错误处理
包装器抛出两种类型的异常
APIException
:对于一般的API错误,包括HTTP错误。DecryptionException
:特别是在解密API响应时出现的错误。
建议分别捕获这些异常,以适当地处理不同类型的错误。
日志记录
包装器包括基本的日志记录机制。日志被写入项目根目录下的debug.log
。您可以通过修改Logger
类来自定义日志记录行为。
安全性
- API令牌以安全的方式通过请求头发送。
- 使用AES-256-GCM自动解密加密响应。
- 像API令牌这样的敏感数据应该安全存储,不要在应用程序中硬编码。
贡献
欢迎贡献!请随时提交拉取请求。
许可证
支持
如果您遇到任何问题或有任何疑问,请在GitHub仓库上打开一个问题。