> ## Documentation Index
> Fetch the complete documentation index at: https://doc.apicomponente.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Trabalhando com contatos

> Nesta seção, você aprenderá a realizar diversas operações relacionadas aos contatos, como obter dados detalhados de um contato, verificar a foto de perfil e validar se um número é do WhatsApp.

### Funcionalidades Disponíveis

* **Obter Dados do Contato**
* **Obter Foto de Perfil do Contato**
* **Verificar se o Número é WhatsApp Válido**

## Obter Dados do Contato, ele retorna o PushName do contato

Para obter o PushName do contato utilize a função **ApiEuAtendo1.ObterDadosDoContato**, passando o número do contato como parâmetro.

### Exemplo de Código

```delphi theme={null}
// Chamar a função para obter dados de um contato
contato := ApiEuAtendo1.ObterDadosContato(edtNumeroContato.Text,erro);
```

## Obter Foto de Perfil do Contato

Para obter a foto de perfil de um contato, utilize a função **ApiEuAtendo1.ObterFotoDePerfil** passando o número do contato. Isso retornará a URL da foto de perfil do contato no WhatsApp.

### Exemplo de Código

```delphi theme={null}
// Chamar a função para obter a foto de perfil de um contato
ApiEuAtendo1.ObterFotoPerfil(edtNumeroContato.Text);
```

### Após chamar a função ele dispara o metodo OnObterFotoPerfil do componente

```delphi theme={null}
// Evento disparado ao obter a foto de perfil do contato
procedure TForm9.ApiEuAtendo1ObterFotoPerfil(Sender: TObject;
  const FotoPerfilResponse: TFotoPerfilResponse);
begin

  if FotoPerfilResponse.Filepath <> '' then
	image1.Picture.LoadFromFile(FotoPerfilResponse.Filepath);
end;
```

## Verificar se o Número é WhatsApp Válido

Para verificar se um número é válido no WhatsApp, utilize a função **ApiEuAtendo1.VerificarNumeroWhatsApp** passando o número do contato como parâmetro. A função retorna uma resposta indicando se o número é válido ou não.

### Exemplo de Código

```delphi theme={null}
// Chamar a função para verificar se o número é um WhatsApp válido
procedure TForm9.Button13Click(Sender: TObject);
var
  Numero, ErroMsg: string;
  Existe: Boolean;
begin
  Numero := edtNumeroContato.Text; // Assume que edtNumero é um TEdit onde o número é inserido
  try
	Existe := ApiEuAtendo1.ExistWhats(Numero, ErroMsg);
	if Existe then
	  memo1.Lines.add('O número ' + Numero + ' existe no WhatsApp.')
	else if ErroMsg <> '' then
	  memo1.Lines.add('Erro ao verificar o número: ' + ErroMsg)
	else
	  memo1.Lines.add('O número ' + Numero + ' não existe no WhatsApp.');
  except
	on E: Exception do
	begin
	  memo1.Lines.add('Erro ao verificar o número: ' + ErroMsg);
	end;
  end;
end;
```

## Tratamento de Erros

* Verifique se o número de telefone foi inserido corretamente antes de chamar qualquer uma das funções.
* Em caso de erro, as funções retornarão uma mensagem de erro específica através da variável `ErrorMsg`, para facilitar o diagnóstico do problema.
