踢球 / copyleaks-api
Copyleaks API
v2.2.0
2024-08-26 15:10 UTC
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^6.5 || ^7.0
- psr/log: ^1.0
Requires (Dev)
- monolog/monolog: ^2.0
- phpunit/phpunit: ^9.0
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 接口实现。
已知问题
并非所有端点和模型属性都已实现。