Primeiros passos
Vamos configurar o servidor e as instancias
Acesso ao servidor e instancias
Para usar o componente euAtendo, é necessário definir o servidor URL e a GlobalAPI antes de utilizar as funções. Esses valores podem ser fixados no seu código, pois geralmente não mudam.
Caso ainda não possua um servidor privado, você pode testar utilizando o servidor COMUNITÁRIO DISPONÍVEL:
- ApiGlobal: ASD3F21APIDEVS6A5SPAULOJRDEVFA1
- endPoint: https://apiv1demo.apidevs.app
- Manager: https://apiv1demo.apidevs.app/manager
Abaixo segue um exemplo de como configurar esses valores no evento onShow do formulário em Delphi:
procedure TForm1.FormShow(Sender: TObject);
begin
ApiEuAtendo1.VersionAPI := TVersionOption.V1; // Definir a versão da API
ApiEuAtendo1.GlobalAPI := 'ASD3F21APIDEVS6A5SPAULOJRDEVFA1'; // Chave Global API
ApiEuAtendo1.EvolutionApiURL := 'https://apiv1demo.apidevs.app'; // URL do servidor
end;
Cada instância representa um dispositivo conectado (por exemplo, o celular de um cliente). Pode ser utilizado para uma única empresa ou para diferentes empresas.
Sempre que uma instância é criada, é obrigatório salvar o nome e a senha da instância para uso futuro. Dessa forma, sempre que o ERP for inicializado, os valores serão passados ao componente durante a sua inicialização.
Antes de chamar a função CriarInstancia, é necessário passar dois parâmetros ao componente:
ApiEuAtendo1.NomeInstancia := edtNome.Text; // Nome da instância
ApiEuAtendo1.ChaveApi := edtSenha.Text; // Chave API da instância (Opcional)
A criação de uma instância pode ser feita da seguinte forma:
var
ErrorMsg: string;
begin
if not ApiEuAtendo1.CriarInstancia(ErrorMsg) then
begin
ShowMessage('Erro ao criar instância: ' + ErrorMsg);
Exit;
end;
end;
Após chamar a função para criar a instância, é necessário implementar o evento que será disparado com as informações da instância recém-criada:
procedure TForm9.ApiEuAtendo1CriarInstancia(Sender: TObject;
const InstanceResponse: TInstanceResponse);
begin
edtNome.Text := InstanceResponse.InstanceName; // Nome da instância
edtStatus.Text := InstanceResponse.Status; // Status da instância
edtSenha.Text := InstanceResponse.ApiKey; // Chave API da instância
// Configurar o componente com os dados da nova instância
ApiEuAtendo1.ChaveApi := InstanceResponse.ApiKey;
ApiEuAtendo1.NomeInstancia := InstanceResponse.InstanceName;
end;
Assim, após a criação da instância, os dados retornados (nome, status, chave API) são armazenados e usados para futuras conexões.
Lendo o QRCode e Conectando à Instância
Antes de conectar a instância ao WhatsApp, você precisa gerar e escanear o QRCode. A função ExibirQRCode
do componente ApiEuAtendo permite isso.
Exemplo de como gerar o QRCode:
var
ErrorMsg: string;
begin
// Chamar a função para exibir o QRCode da instância
if not ApiEuAtendo1.ExibirQRCode(ErrorMsg) then
begin
ShowMessage('Erro ao gerar QRCode: ' + ErrorMsg);
Exit;
end;
ShowMessage('QRCode gerado com sucesso. Escaneie com o WhatsApp para conectar.');
end;
Agora, precisamos implementar o evento OnObterQrCode
para capturar o QRCode gerado em formato Base64 e exibi-lo:
procedure TForm9.ApiEuAtendo1ObterQrCode(Sender: TObject;
const Base64QRCode: string);
begin
// Carregar a imagem do QRCode gerado a partir do Base64
LoadBase64ToImage(Base64QRCode, Image1); // Exibe o QRCode no componente Image1
end;
A função LoadBase64ToImage
converte a string Base64 do QRCode em uma imagem visual para que o usuário possa escanear o QRCode diretamente da interface do sistema.
Após a leitura do QRCode, o dispositivo será vinculado à instância e ficará pronto para o envio e recebimento de mensagens.
Após a leitura do QRCode e conexão do dispositivo, você pode verificar o status da instância para garantir que está conectada e pronta para uso. Use a função StatusInstancia
para isso.
Exemplo de como verificar o status da instância após a leitura do QRCode:
var
ErrorMsg: string;
begin
// Chamar a função para obter o status da instância
ApiEuAtendo1.StatusInstancia;
end;
Agora implemente o evento que será disparado quando a função de status for chamada no componente o Events OnStatusInstancia:
procedure TForm9.ApiEuAtendo1StatusInstancia(Sender: TObject;
const InstanceStatus: TInstanceStatus);
begin
// Exibir o nome da instância e o estado atual
edtNome.Text := InstanceStatus.InstanceName;
edtStatus.Text := InstanceStatus.State; // Estados: open, closed, connecting
if InstanceStatus.State = 'open' then
ShowMessage('Instância conectada com sucesso.')
else if InstanceStatus.State = 'closed' then
ShowMessage('Instância desconectada. Escaneie o QRCode novamente.')
else if InstanceStatus.State = 'connecting' then
ShowMessage('A instância está tentando conectar. Por favor, aguarde.');
end;
Com isso, você pode verificar em tempo real o status da instância e agir conforme necessário. O estado pode ser um dos seguintes:
- open: Instância conectada e pronta para uso.
- closed: Instância desconectada, necessitando de nova conexão via QRCode.
- connecting: A instância está em processo de conexão.
Metodos e funções
Para enviar uma mensagem de texto simples utilizando o componente euAtendo, você deve usar a função EnviarMensagemDeTexto
. Certifique-se de que a instância está criada e conectada antes de realizar o envio.
Exemplo de como enviar uma mensagem de texto:
var
id:String;
begin
edtIDMensagem.Text := ApiEuAtendo1.EnviarMensagemDeTexto(edtNumeroContato.Text,memoMensagemEnviar.Lines.text);
edtIDMensagem.Text := ApiEuAtendo1.EnviarMensagemDeTexto('559982385000', 'Estou testando o seu componente');
end;
//se o ID for retornado a mensagem foi enviada com sucesso, usar trye para tratamento de erros, com o ID
// da mensagem voce pode solicitar o status de enviado, entregue e lida
Neste exemplo, substitua +5511999999999
pelo número do destinatário. Caso ocorra algum erro durante o envio, a variável ErrorMsg
retornará a descrição do erro.
Para enviar uma mensagem com um arquivo anexo (por exemplo, uma imagem ou documento), utilize a função EnviarArquivo
. O caminho do arquivo no sistema local deve ser fornecido.
Exemplo de como enviar uma mensagem com um anexo:
var
ErrorMsg: string;
begin
// Enviar texto e arquivo para um número específico
if FileOpenDialog1.Execute then
begin
edtIDMensagem.Text := ApiEuAtendo1.EnviarMensagemDeMidia
(edtNumeroContato.Text, '', 'teste de envio de anexo',
FileOpenDialog1.FileName);
end;
end;
Neste exemplo, o arquivo arquivo.pdf
será enviado junto com o texto. O caminho do arquivo deve ser completo e apontar para o local correto no sistema.
Para enviar um arquivo codificado em base64, utilize a função EnviarMensagemDeBase64
. O código abaixo mostra como abrir um arquivo com FileOpenDialog, converter para base64 e enviá-lo via componente euAtendo.
Exemplo de como enviar uma mensagem com anexo em base64:
var
ErrorMsg: string;
begin
// Abrir o diálogo para selecionar o arquivo
if FileOpenDialog1.Execute then
begin
if FileOpenDialog1.FileName <> '' then
begin
// Limpar o Memo1 e adicionar o conteúdo do arquivo convertido para base64
memo1.Lines.Clear;
memo1.Lines.Add(FileToBase64(FileOpenDialog1.FileName));
// Enviar o arquivo codificado em base64
if not ApiEuAtendo1.EnviarMensagemDeBase64('+559982385000', 'Segue seu boleto', Memo1.Lines.Text, 'document', 'orcamento.pdf', ErrorMsg) then
begin
ShowMessage('Erro ao enviar anexo base64: ' + ErrorMsg);
end
else
begin
ShowMessage('Anexo base64 enviado com sucesso!');
end;
end;
end;
end;
Neste exemplo:
- O arquivo é selecionado através de FileOpenDialog.
- O conteúdo do arquivo é convertido para base64 usando a função
FileToBase64
. - O anexo em base64 é enviado utilizando a função
EnviarMensagemDeBase64
. - O quarto parâmetro (‘document’) indica o tipo de anexo, e o quinto (‘orcamento.pdf’) é o nome que o destinatário verá.
Update your docs
Add content directly in your files with MDX syntax and React components. You can use any of our components, or even build your own.
Was this page helpful?