peranetwork/viewstats-api

ViewStats API的PHP包装器

1.0.0 2024-09-30 13:35 UTC

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请求

  1. 频道信息

    $api->get('/channels/@delba');
  2. 频道简介

    $api->get('/channels/@delba/aboutMe');
  3. 频道统计

    $api->get('/channels/@delba/stats', [
        'range' => '28',
        'groupBy' => 'daily',
        'sortOrder' => 'ASC',
        'withRevenue' => 'true',
        'withEvents' => 'true',
        'withBreakdown' => 'false',
        'withToday' => 'false'
    ]);
  4. 频道所有时间统计

    $api->get('/channels/@delba/stats', [
        'range' => 'alltime',
        'groupBy' => 'daily',
        'sortOrder' => 'ASC',
        'withRevenue' => 'true',
        'withEvents' => 'false',
        'withBreakdown' => 'false'
    ]);
  5. 月度频道统计

    $api->get('/channels/@delba/stats', [
        'range' => '365',
        'groupBy' => 'monthly',
        'sortOrder' => 'ASC',
        'withRevenue' => 'true',
        'withEvents' => 'true',
        'withBreakdown' => 'false',
        'withToday' => 'false'
    ]);
  6. 长视频和短视频

    $api->get('/channels/@delba/longsAndShorts');
  7. 特色视频

    $api->get('/channels/@delba/featuredVideo');
  8. 频道平均值

    $api->get('/channels/@delba/averages');
  9. 频道视频

    $api->get('/channels/@delba/videos', [
        'orderBy' => 'uploadDate',
        'limit' => '40',
        'offset' => '0',
        'withThumbnail' => 'true',
        'type' => 'lf'
    ]);
  10. 频道预测

    $api->get('/channels/@delba/projections/milestones');
  11. 相似频道

    $api->get('/channels/@delba/similar');
  12. 热门频道

    $api->get('/channels/popular', ['total' => '6']);

POST请求

  1. 频道排名

    $api->post('/rankings/channels', [
        'interval' => 'weekly',
        'sortBy' => 'subs',
        'made_for_kids' => true,
        'show_music' => true,
        'category_id' => null,
        'country' => null,
        'show_movies' => true
    ]);
  2. 视频排名

    $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令牌这样的敏感数据应该安全存储,不要在应用程序中硬编码。

贡献

欢迎贡献!请随时提交拉取请求。

许可证

MIT许可证

支持

如果您遇到任何问题或有任何疑问,请在GitHub仓库上打开一个问题。