namespace OASystem.API.OAMethodLib.SnovioAPI;
///
/// Snov.io API 服务。
///
public interface ISnovioService
{
///
/// 使用配置中的 Client ID 和 Client Secret 获取 OAuth 访问令牌。
///
/// 取消令牌。
/// Snov.io OAuth 访问令牌响应。
Task GetAccessTokenAsync(
CancellationToken cancellationToken = default);
///
/// 创建 Snov.io 公司数据库搜索任务。
///
/// 公司搜索请求体。
/// 取消令牌。
/// 包含 task_hash 和结果地址的异步任务响应。
Task StartCompanySearchAsync(
SnovioCompanySearchRequest request,
CancellationToken cancellationToken = default);
///
/// 根据 task_hash 获取公司搜索任务当前结果。
///
/// 创建公司搜索任务时返回的 task_hash。
/// 取消令牌。
/// 公司搜索结果响应;任务未完成时可返回处理中状态。
Task GetCompanySearchResultAsync(
string taskHash,
CancellationToken cancellationToken = default);
///
/// 按指定间隔轮询公司搜索任务,直到任务完成、失败或超时。
///
/// 创建公司搜索任务时返回的 task_hash。
/// 最大等待时间,未指定时默认 2 分钟。
/// 两次结果查询之间的间隔,未指定时默认 3 秒。
/// 取消令牌。
/// 任务完成后的公司搜索结果响应。
/// 任务在最大等待时间内未完成时抛出。
/// Snov.io 返回任务失败状态时抛出。
Task WaitForCompanySearchResultAsync(
string taskHash,
TimeSpan? timeout = null,
TimeSpan? pollInterval = null,
CancellationToken cancellationToken = default);
///
/// 创建公司搜索任务并轮询等待实际结果。
///
/// 公司搜索条件和分页请求体。
/// 最大等待时间,未指定时默认 2 分钟。
/// 两次结果查询之间的间隔,未指定时默认 3 秒。
/// 取消令牌。
/// 任务完成后的公司搜索结果响应。
Task SearchCompaniesAsync(
SnovioCompanySearchRequest request,
TimeSpan? timeout = null,
TimeSpan? pollInterval = null,
CancellationToken cancellationToken = default);
///
/// 创建 Snov.io 域名潜在客户搜索任务。
///
/// 域名潜在客户搜索请求体。
/// 取消令牌。
/// 包含 task_hash 和结果地址的异步任务响应。
Task StartDomainProspectsSearchAsync(
SnovioDomainProspectsSearchRequest request,
CancellationToken cancellationToken = default);
///
/// 根据 task_hash 获取域名潜在客户搜索任务当前结果。
///
/// 创建域名潜在客户搜索任务时返回的 task_hash。
/// 取消令牌。
/// 域名潜在客户搜索结果响应;任务未完成时可返回处理中状态。
Task GetDomainProspectsSearchResultAsync(
string taskHash,
CancellationToken cancellationToken = default);
///
/// 按指定间隔轮询域名潜在客户搜索任务,直到任务完成、失败或超时。
///
/// 创建域名潜在客户搜索任务时返回的 task_hash。
/// 最大等待时间,未指定时默认 2 分钟。
/// 两次结果查询之间的间隔,未指定时默认 3 秒。
/// 取消令牌。
/// 任务完成后的域名潜在客户搜索结果响应。
/// 任务在最大等待时间内未完成时抛出。
/// Snov.io 返回任务失败状态时抛出。
Task WaitForDomainProspectsSearchResultAsync(
string taskHash,
TimeSpan? timeout = null,
TimeSpan? pollInterval = null,
CancellationToken cancellationToken = default);
///
/// 创建域名潜在客户搜索任务并轮询等待实际结果。
///
/// 域名、职位筛选和分页请求体。
/// 最大等待时间,未指定时默认 2 分钟。
/// 两次结果查询之间的间隔,未指定时默认 3 秒。
/// 取消令牌。
/// 任务完成后的域名潜在客户搜索结果响应。
Task SearchDomainProspectsAsync(
SnovioDomainProspectsSearchRequest request,
TimeSpan? timeout = null,
TimeSpan? pollInterval = null,
CancellationToken cancellationToken = default);
///
/// 创建指定潜客的邮箱检索任务。
///
/// 域名潜客搜索结果中返回的 prospect_hash,用于定位单个潜客。
/// 邮箱检索请求体,可选,目前支持 webhook_url 回调地址。
/// 取消令牌。
/// 包含邮箱检索 task_hash 和结果地址的异步任务响应。
Task StartProspectEmailSearchAsync(
string prospectHash,
SnovioProspectEmailSearchRequest? request = null,
CancellationToken cancellationToken = default);
///
/// 根据 task_hash 获取潜客邮箱检索任务当前结果。
///
/// 邮箱检索任务的 task_hash。
/// 取消令牌。
/// 潜客邮箱检索结果响应;任务未完成时可返回处理中状态。
Task GetProspectEmailSearchResultAsync(
string taskHash,
CancellationToken cancellationToken = default);
///
/// 按指定间隔轮询潜客邮箱检索任务,直到任务完成、失败或超时。
///
/// 邮箱检索任务的 task_hash。
/// 最大等待时间,未指定时默认 2 分钟。
/// 两次结果查询之间的间隔,未指定时默认 3 秒。
/// 取消令牌。
/// 任务完成后的潜客邮箱检索结果响应。
/// 任务在最大等待时间内未完成时抛出。
/// Snov.io 返回任务失败状态时抛出。
Task WaitForProspectEmailSearchResultAsync(
string taskHash,
TimeSpan? timeout = null,
TimeSpan? pollInterval = null,
CancellationToken cancellationToken = default);
///
/// 创建潜客邮箱检索任务并轮询等待实际邮箱结果。
///
/// 域名潜客搜索结果中返回的 prospect_hash,用于定位单个潜客。
/// 邮箱检索请求体,可选,目前支持 webhook_url 回调地址。
/// 最大等待时间,未指定时默认 2 分钟。
/// 两次结果查询之间的间隔,未指定时默认 3 秒。
/// 取消令牌。
/// 任务完成后的潜客邮箱检索结果响应。
Task SearchProspectEmailAsync(
string prospectHash,
SnovioProspectEmailSearchRequest? request = null,
TimeSpan? timeout = null,
TimeSpan? pollInterval = null,
CancellationToken cancellationToken = default);
}