Evolution.Client.CSharp
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Evolution.Client.CSharp --version 1.0.0
NuGet\Install-Package Evolution.Client.CSharp -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Evolution.Client.CSharp" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Evolution.Client.CSharp" Version="1.0.0" />
<PackageReference Include="Evolution.Client.CSharp" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Evolution.Client.CSharp --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Evolution.Client.CSharp, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Evolution.Client.CSharp@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Evolution.Client.CSharp&version=1.0.0
#tool nuget:?package=Evolution.Client.CSharp&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Evolution.Client.CSharp
Evolution.API C# Library
Esta biblioteca permite que aplicações C# se comuniquem com a API do Evolution.API, uma plataforma que proporciona o envio de mensagens via WhatsApp.
Funcionalidades
- Gerenciamento de Instâncias
- Envio de mensagens de texto via WhatsApp
- Envio de mensagens de mídia (imagens, vídeos, documentos)
- Suporte a mensagens de grupo
- Recebimento de notificações de mensagens
Requisitos
- .NET 8
Instalação
Para instalar a biblioteca, você pode usar o NuGet Package Manager:
Evolution.Client.CSharp
Exemplo: Envio de mídia
var client = new EvolutionClient("https://sua-url-da-api", "SEU_API_KEY");
var mediaRequest = new RequestMediaMessage
{
Number = "5511999999999",
Type = "image", // ou "video", "document", etc.
Caption = "Legenda opcional",
FileName = "foto.jpg",
FileBytes = File.ReadAllBytes("foto.jpg"),
MimeType = "image/jpeg"
};
var resposta = await client.Messages.SendMedia("id_da_instancia", mediaRequest);
Exemplo: Listar grupos
var grupos = await client.Group.ListGroups("id_da_instancia");
foreach (var grupo in grupos.Groups)
{
Console.WriteLine($"Grupo: {grupo.Name} - ID: {grupo.Id}");
}
Exemplo: Enviar mensagem de texto para grupo
var textoGrupo = new RequestGroupTextMessage
{
GroupId = "id_do_grupo",
Text = "Olá, grupo!"
};
var respostaTexto = await client.Group.SendText("id_da_instancia", textoGrupo);
Exemplo: Enviar mídia para grupo
var mediaGrupo = new RequestGroupMediaMessage
{
GroupId = "id_do_grupo",
Type = "image",
Caption = "Foto do grupo",
FileName = "foto.jpg",
FileBytes = File.ReadAllBytes("foto.jpg"),
MimeType = "image/jpeg"
};
var respostaMedia = await client.Group.SendMedia("id_da_instancia", mediaGrupo);
Exemplo: Configurar webhook para receber notificações
var webhookRequest = new ConfigureWebhookRequest
{
Url = "https://seuservidor.com/webhook",
Events = new List<string> { "MESSAGES_UPSERT", "CONNECTION_UPDATE" }
};
await client.Instances.ConfigureWebhook(webhookRequest);
Exemplo: Modelo de evento recebido (mensagem)
public class MeuWebhookController : ControllerBase
{
[HttpPost("/webhook")]
public IActionResult ReceberEvento([FromBody] WebhookEventMessage evento)
{
Console.WriteLine($"Mensagem recebida: {evento.Message.Conversation}");
return Ok();
}
}
Exemplo: Evento de status de conexão (CONNECTION_UPDATE)
[HttpPost("/webhook/connection")]
public IActionResult ReceberStatus([FromBody] WebhookEventConnectionUpdate evento)
{
Console.WriteLine($"Instância: {evento.Instance} - Status: {evento.State}");
return Ok();
}
### Exemplo: Evento de QR Code (QRCODE_UPDATED)
```csharp
[HttpPost("/webhook/qrcode")]
public IActionResult ReceberQrCode([FromBody] WebhookEventQrCodeUpdated evento)
{
Console.WriteLine($"Instância: {evento.Instance} - QRCode (base64): {evento.QrCode}");
return Ok();
}
Exemplo: Enviar mensagem com botões
var buttonRequest = new RequestButtonMessage
{
Number = "5511999999999",
Text = "Escolha uma opção:",
Buttons = new List<Button>
{
new Button { Id = "1", Text = "Opção 1" },
new Button { Id = "2", Text = "Opção 2" },
new Button { Id = "3", Text = "Opção 3" }
}
};
var resposta = await client.Messages.SendButton("id_da_instancia", buttonRequest);
Exemplo: Enviar enquete (Poll)
var pollRequest = new RequestPollMessage
{
Number = "5511999999999",
Question = "Qual sua cor favorita?",
Options = new List<string> { "Azul", "Verde", "Vermelho" }
};
var resposta = await client.Messages.SendPoll("id_da_instancia", pollRequest);
Exemplo: Enviar mensagem de lista
var listRequest = new RequestListMessage
{
Number = "5511999999999",
Title = "Escolha um item:",
Description = "Selecione uma das opções abaixo:",
Items = new List<ListItem>
{
new ListItem { Id = "1", Text = "Item 1" },
new ListItem { Id = "2", Text = "Item 2" }
}
};
var resposta = await client.Messages.SendList("id_da_instancia", listRequest);
Exemplo: Enviar status
var statusRequest = new RequestStatusMessage
{
Instance = "id_da_instancia",
Status = "Novo status do WhatsApp!"
};
var resposta = await client.Messages.SendStatus("id_da_instancia", statusRequest);
Exemplo: Enviar localização
var locationRequest = new RequestLocationMessage
{
Number = "5511999999999",
Latitude = -23.55052,
Longitude = -46.633308,
Name = "Praça da Sé",
Address = "São Paulo, SP"
};
var resposta = await client.Messages.SendLocation("id_da_instancia", locationRequest);
Exemplo: Enviar contato
var contactRequest = new RequestContactMessage
{
Number = "5511999999999",
ContactName = "João Silva",
ContactNumber = "5511988888888",
Email = "joao@email.com"
};
var resposta = await client.Messages.SendContact("id_da_instancia", contactRequest);
Exemplo: Enviar reação
var reactionRequest = new RequestReactionMessage
{
Number = "5511999999999",
MessageId = "id_da_mensagem",
Emoji = "👍"
};
var resposta = await client.Messages.SendReaction("id_da_instancia", reactionRequest);
Exemplo: Enviar sticker
var stickerRequest = new RequestStickerMessage
{
Number = "5511999999999",
FileName = "sticker.webp",
FileBytes = File.ReadAllBytes("sticker.webp"),
MimeType = "image/webp"
};
var resposta = await client.Messages.SendSticker("id_da_instancia", stickerRequest);
Exemplo: Enviar áudio do WhatsApp
var audioRequest = new RequestAudioMessage
{
Number = "5511999999999",
FileName = "audio.ogg",
FileBytes = File.ReadAllBytes("audio.ogg"),
MimeType = "audio/ogg"
};
var resposta = await client.Messages.SendAudio("id_da_instancia", audioRequest);
Exemplo: Receber eventos via Webhook
[ApiController]
[Route("webhook")]
public class WebhookController : ControllerBase
{
[HttpPost("poll")]
public IActionResult ReceberPoll([FromBody] RequestPollMessage poll)
{
Console.WriteLine($"Enquete recebida: {poll.Question} - Opções: {string.Join(", ", poll.Options)}");
return Ok();
}
[HttpPost("list")]
public IActionResult ReceberList([FromBody] RequestListMessage list)
{
Console.WriteLine($"Lista recebida: {list.Title} - Itens: {string.Join(", ", list.Items.Select(i => i.Text))}");
return Ok();
}
[HttpPost("status")]
public IActionResult ReceberStatus([FromBody] RequestStatusMessage status)
{
Console.WriteLine($"Status recebido: {status.Status}");
return Ok();
}
[HttpPost("location")]
public IActionResult ReceberLocation([FromBody] RequestLocationMessage location)
{
Console.WriteLine($"Localização recebida: {location.Name} ({location.Latitude}, {location.Longitude})");
return Ok();
}
[HttpPost("contact")]
public IActionResult ReceberContact([FromBody] RequestContactMessage contact)
{
Console.WriteLine($"Contato recebido: {contact.ContactName} - {contact.ContactNumber}");
return Ok();
}
[HttpPost("reaction")]
public IActionResult ReceberReaction([FromBody] RequestReactionMessage reaction)
{
Console.WriteLine($"Reação recebida: {reaction.Emoji} para mensagem {reaction.MessageId}");
return Ok();
}
[HttpPost("sticker")]
public IActionResult ReceberSticker([FromBody] RequestStickerMessage sticker)
{
Console.WriteLine($"Sticker recebido para: {sticker.Number}");
return Ok();
}
[HttpPost("audio")]
public IActionResult ReceberAudio([FromBody] RequestAudioMessage audio)
{
Console.WriteLine($"Áudio recebido para: {audio.Number}");
return Ok();
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.3 | 95 | 7/12/2025 |
1.0.2 | 89 | 7/12/2025 |
1.0.0 | 136 | 5/11/2025 |
0.1.0-preview1 | 85 | 12/28/2024 |
Evolution API - SDK de integração com Evolution API para WhatsApp.