踢球/copyleaks-api

Copyleaks API

v2.2.0 2024-08-26 15:10 UTC

This package is auto-updated.

Last update: 2024-09-26 15:32:50 UTC


README

这是一个简单的 Copyleaks API 版本 3 实现。

安装

最简单的方法是通过 composer 安装。

composer require kicken/copyleaks-api

用法

首先创建一个 CopyleaksAPI 类的新实例。然后您可以使用 scans()downloads() 方法访问 API 端点。

以下是一些快速示例,帮助您开始。阅读库源代码以获取有关功能和如何使用库的更多信息。

使用 URL 提交文档进行扫描。

const API_EMAIL = 'test@example.com';
const API_KEY = 'secret_api_key';

$client = new CopyleaksAPI(API_EMAIL, API_KEY);

//Setup callback URLs
$scanId = mt_rand();
$documentUrl = 'https://example.com/webhook.php?scan=' . $scanId . '&action=download';
$statusUrl = 'https://example.com/webhook.php?scan=' . $scanId . '&action=status&status={STATUS}';

//Submit scan request
$parameters = new SubmitUrlParameters($documentUrl, $scanId, $statusUrl);
$client->scans()->submitURL($parameters);

完成时导出结果

const API_EMAIL = 'test@example.com';
const API_KEY = 'secret_api_key';

$json = json_decode(file_get_contents('php://input'));
$data = Completed::createFromJsonObject($json);

$matchMap = [
    'internet' => $data->results->internet,
    'database' => $data->results->database
];

$exportId = date('Ymd\tHis');
$completeHook = 'https://example.com/webhook.php?' . http_build_query([
        'scan' => $scanId,
        'action' => 'export',
        'what' => 'complete'
    ]);
$exportParameters = new ExportParameters($scanId, $exportId, $completeHook);
foreach ($matchMap as $type => $matchList){
    /** @var ResultItem $resultItem */
    foreach ($matchList as $resultItem){
        $resultParams = new ResultParameters($resultItem->id, 'https://example.com/webhook.php?' . http_build_query([
                'scan' => $scanId,
                'action' => 'export',
                'what' => 'result',
                'id' => $resultItem->id
            ])); 
        $exportParameters->addResult($resultParams);
    }
}

$client = new CopyleaksAPI(API_EMAIL, API_KEY);
$client->downloads()->export($exportParameters);

登录令牌缓存

Copyleaks 建议缓存并重复使用提供的授权令牌,因为它有效期为 48 小时。此库默认情况下将在内存中缓存令牌。要将令牌缓存到其他地方(例如持久存储),您可以提供自定义的 AuthorizationCache 接口实现。

已知问题

并非所有端点和模型属性都已实现。