Pular para o conteúdo principal
O SDK .NET oficial da VZaps encapsula autenticação, chamadas HTTP, headers obrigatórios, eventos realtime e os principais recursos da API pública. Use em APIs ASP.NET Core, Workers, serviços Windows/Linux, CLIs e automações server-to-server.

Requisitos

RecursoVersão
.NET.NET Standard 2.0 ou superior
Recomendado.NET 8 ou superior

Instalar

dotnet add package VZaps.SDK

Criar o cliente

using VZaps;

using var client = new VZapsClient(new VZapsClientOptions
{
    ClientToken = "your-client-token",
    ClientSecret = "your-client-secret",
});
Com ASP.NET Core ou Worker, registre o cliente no container:
builder.Services.AddVZapsClient(options =>
{
    options.ClientToken = builder.Configuration["VZaps:ClientToken"];
    options.ClientSecret = builder.Configuration["VZaps:ClientSecret"];
});
Depois injete VZapsClient em handlers, controllers ou hosted services.

Credenciais

CredencialOnde usarDescrição
ClientTokenVZapsClientOptionsToken de cliente da conta, também enviado como X-Client-Token.
ClientSecretVZapsClientOptionsSegredo usado pelo SDK para obter e renovar JWTs.
InstanceTokenCada chamada de instânciaToken da instância, enviado como X-Instance-Token.
Não exponha ClientSecret ou InstanceToken em front-ends públicos.

Autenticação automática

O SDK obtém um JWT com ClientToken e ClientSecret, cacheia em memória e renova antes de expirar.
var accessToken = await client.Auth.GetAccessTokenAsync();

Opções do cliente

OpçãoPadrãoUso
Timeout30 segundosTimeout HTTP.
TokenRefreshSkew60 segundosRenova o JWT antes da expiração real.
UserAgentPadrão do SDKHeader HTTP User-Agent.

Variáveis de ambiente

VZAPS_CLIENT_TOKEN=your-client-token
VZAPS_CLIENT_SECRET=your-client-secret
VZAPS_INSTANCE_ID=VZ...
VZAPS_INSTANCE_TOKEN=your-instance-token

Tipagem de respostas

Os exemplos usam object ou JsonElement quando a resposta pode variar. Em produção, você pode criar seus próprios DTOs e passá-los como TResponse.
var response = await client.Instances.ListAsync<JsonElement>(new InstanceListRequest
{
    Page = 1,
    PageSize = 20,
});

Próximos passos