A funcionalidade de instâncias no componente euAtendo é essencial para a gestão de múltiplas empresas simultâneos. Cada instância representa uma conexão ativa com um canal de comunicação (como WhatsApp), permitindo que sua empresa tenha diferentes clientes configurados para diversos setores ou serviços. Nesta seção, vamos aprender como criar, configurar e gerenciar instâncias, garantindo um controle eficiente sobre as operações de atendimento.
Use this file to discover all available pages before exploring further.
Autenticando o servidor da API
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:
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 servidorend;
Instâncias 'Celulares de Clientes'
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ânciaApiEuAtendo1.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.
Conectar em uma instancia existente
Uma vez que a instancia é criada, voce deve armazenar os dados dela, e usar esses dados sempre que for necessario.
procedure TForm9.ConectarInstanciaExistente;var ErrorMsg: string; NomeInstancia: string; ChaveApi: string;begin // Recupera o nome e a chave API da instância previamente armazenados NomeInstancia := edtNome.Text; // Nome da instância previamente salvo ChaveApi := edtSenha.Text; // Chave API previamente salva (opcional) // Passa os valores ao componente ApiEuAtendo1.NomeInstancia := NomeInstancia; ApiEuAtendo1.ChaveApi := ChaveApi; // Tenta conectar à instância ApiEuAtendo1.StatusInstancia;end;
Após a execução bem-sucedida dessa função, o componente estará conectado à instância especificada. Caso ocorra algum erro durante a tentativa de conexão, uma mensagem será exibida com detalhes do erro.
Consultar Status da Instância
Para consultar o status de uma instância já criada, você pode utilizar a função ApiEuAtendo1.StatusInstancia(). Após chamar essa função, o evento OnStatusInstancia será disparado, retornando as informações de status da instância.
// Evento disparado ao consultar o statusprocedure TForm9.ApiEuAtendo1StatusInstancia(Sender: TObject; const InstanceStatus: TInstanceStatus);begin edtNome.Text := InstanceStatus.InstanceName; // Nome da instância edtStatus.Text := InstanceStatus.State; // Status da instânciaend;
Após chamar a função StatusInstancia, o evento OnStatusInstancia será disparado automaticamente, retornando informações como o nome da instância e o estado atual. Essas informações podem ser utilizadas para atualizar a interface ou tomar ações com base no status da instância.
O valor InstanceStatus.State retornará o estado atual da instância, que pode ser utilizado para monitorar se a instância está conectada, desconectada, ou em outro estado.Exemplos de estados:
Caso haja algum problema na consulta do status, certifique-se de que a instância está corretamente configurada e ativa.
Listar Todas as Instâncias
Para listar todas as instâncias conectadas, utilize o método ApiEuAtendo1.ObterInstancias. Quando essa função é chamada, o evento OnObterInstancias será disparado, retornando uma lista de todas as instâncias disponíveis.
implemente o evento do componente OnObterInstancias
// Evento disparado ao listar as instânciasprocedure TForm9.ApiEuAtendo1ObterInstancias(Sender: TObject; const Instancias: TInstances);var i: Integer;begin i := 0; if ApiEuAtendo1.Version = TVersionOption.V1 then begin for i := 0 to Length(Instancias) - 1 do begin memo1.Lines.Add('Instância: ' + Instancias[i].InstanceName); memo1.Lines.Add('Chave: ' + Instancias[i].ApiKey); memo1.Lines.Add('Número: ' + Instancias[i].Owner); memo1.Lines.Add('----------------------------------------'); end; end; if ApiEuAtendo1.Version = TVersionOption.V2 then begin for i := 0 to Length(Instancias) - 1 do begin memo1.Lines.Add('Instância: ' + Instancias[i].InstanceName); memo1.Lines.Add('Chave: ' + Instancias[i].ApiKey); memo1.Lines.Add('Número: ' + Instancias[i].PhoneNumber); memo1.Lines.Add('----------------------------------------'); end; end;end;
Após chamar o método ObterInstancias, o evento OnObterInstancias será disparado, retornando uma lista de instâncias. As informações retornadas variam de acordo com a versão do componente (V1 ou V2), e incluem o nome da instância, a chave API, e o número de telefone associado à instância.
Para a versão V1, a propriedade Owner contém o número de telefone.
Para a versão V2, a propriedade PhoneNumber contém o número de telefone.