Skip to main content
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 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.
Uma vez que a instancia é criada, voce deve armazenar os dados dela, e usar esses dados sempre que for necessario.

Passo a Passo para utilizar e alternar instancias

  1. Recupere o nome e a chave API da instância previamente salvos..
  2. Passe os valores ao componente.
  3. Tente conectar à instância utilizando a função StatusInstancia.

Passe os parametros para o componente

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;

Resultado Esperado

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.
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.

Passo a Passo para Consultar o Status

  1. Chame a função StatusInstancia para consultar o status da instância.
  2. O evento OnStatusInstancia será disparado com o retorno do status da instância.
  3. Utilize os valores retornados para atualizar os campos ou interface conforme necessário.

Chame a função

// Chamar a função para consultar o status da instância
ApiEuAtendo1.StatusInstancia;

Retorno no componente

// Evento disparado ao consultar o status
procedure TForm9.ApiEuAtendo1StatusInstancia(Sender: TObject;
  const InstanceStatus: TInstanceStatus);
begin
  edtNome.Text   := InstanceStatus.InstanceName; // Nome da instância
  edtStatus.Text := InstanceStatus.State;        // Status da instância
end;

Resultado Esperado

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.

Possíveis Estados de 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:
  • Open
  • Closed
  • Connecting

Tratamento de Erros

Caso haja algum problema na consulta do status, certifique-se de que a instância está corretamente configurada e ativa.
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.

Passo a Passo para Listar as Instâncias

  1. Chame o método ObterInstancias para recuperar a lista de instâncias.
  2. O evento OnObterInstancias será disparado, retornando as informações de cada instância.
  3. Utilize essas informações para exibir as instâncias, como nome, chave API e número de telefone, de acordo com a versão do componente.

Chame usando esse metodo

// Chamar a função para obter todas as instâncias
ApiEuAtendo1.ObterInstancias;

implemente o evento do componente OnObterInstancias

// Evento disparado ao listar as instâncias
procedure 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;

Resultado Esperado

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.

Tratamento de Versões

A função lida com diferentes versões do componente euAtendo, ajustando o retorno das informações conforme necessário para cada versão.
I