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); }