> ## 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 grupos

> Nesta seção, abordamos os principais casos de uso para trabalhar com grupos utilizando o componente ApiEuAtendo.  As funções relacionadas a grupos são essenciais para quem gerencia interações em massa, permitindo uma comunicação eficiente e organizada  com vários contatos de uma só vez. A seguir, explicamos como aproveitar essas funções para obter, listar e interagir com grupos no seu sistema.

### Funcionalidades Disponíveis

* **Obter Todos os Grupos**
* **Listar Todos os Contatos do Grupo**
* **Enviar Mensagem para o Grupo**
* **Enviar uma Marcação Fantasma para o Grupo**

## Obter Todos os Grupos

Para obter uma lista de todos os grupos disponíveis, utilize a função **ApiEuAtendo1.ObterGrupos**.

### Exemplo de Código

```delphi theme={null}
// Chamar a função para obter todos os grupos
ApiEuAtendo1.ObterGrupos;

// Evento disparado ao obter todos os grupos
procedure TForm9.ApiEuAtendo1ObterGrupos(Sender: TObject;
  const Grupos: TGrupos);
  var
  i:Integer;
begin
 i:=0;
	memo1.Lines.Clear;
   for I := 0 to Length(Grupos) - 1 do
   begin

	  memo1.Lines.Add(grupos[I].ID);
	  memo1.Lines.Add(grupos[I].Owner);
	  memo1.Lines.Add(grupos[I].Desc);
	  memo1.Lines.Add(grupos[I].Subject);
	  memo1.Lines.Add('----------------------------');
   end;
end;
```

## Listar Todos os Contatos do Grupo

Para listar todos os contatos de um grupo específico, utilize a função **ApiEuAtendo1.ObterMembrosGrupo(GroupJid, ErroMsg);** passando o ID do grupo.

### Exemplo de Código

```delphi theme={null}
procedure TForm9.Button14Click(Sender: TObject);
	var
	  GroupJid, ErroMsg: string;
	  Membros: TGrupoMembros;
	  I: Integer;
	  MembroStr: string;
	begin
	memo1.Lines.Clear;
	  GroupJid := edtIdGrupo.Text; // Assume que edtGroupJid é um TEdit onde o ID do grupo é inserido
	  try
		Membros := ApiEuAtendo1.ObterMembrosGrupo(GroupJid, ErroMsg);
		if Length(Membros) > 0 then
		begin
		  MembroStr := 'Membros do grupo: ' + sLineBreak;
		  for I := 0 to Length(Membros) - 1 do
		  begin
			MembroStr := MembroStr + Format('ID: %s, Admin: %s', [Membros[I].ID, BoolToStr(Membros[I].Admin, True)]) + sLineBreak;
			memo1.Lines.Add(MembroStr);
		  end;
		end
		else if ErroMsg <> '' then
		  ShowMessage('Erro ao obter membros do grupo: ' + ErroMsg)
		else
		  ShowMessage('Nenhum membro encontrado para o grupo ' + GroupJid);
	  except
		on E: Exception do
		begin
		  ShowMessage('Erro ao obter membros do grupo: ' + E.Message);
		end;
	  end;
	end;
```

## Enviar Mensagem para o Grupo

Para enviar uma mensagem para o grupo, utilize a função **ApiEuAtendo1.EnviarMensagemParaGrupo**, passando o ID do grupo e a mensagem.

### Exemplo de Código

```delphi theme={null}
// Chamar a função para enviar uma mensagem para o grupo
procedure TForm9.EnviarMensagemParaGrupo;
var
  ErrorMsg: string;
begin
  if not ApiEuAtendo1.EnviarMensagemDeTexto(edtGroupID.Text, edtMensagem.Text, ErrorMsg) then
  begin
    ShowMessage('Erro ao enviar mensagem: ' + ErrorMsg);
  end
  else
  begin
    ShowMessage('Mensagem enviada com sucesso!');
  end;
end;
```

## Enviar uma Marcação Fantasma para o Grupo

A marcação fantasma é uma mensagem que é enviada sem que o remetente seja visível. Para enviar uma marcação fantasma, utilize a função **ApiEuAtendo1.EnviarMarcacaoFantasma**.

### Exemplo de Código

```delphi theme={null}
// Chamar a função para enviar uma marcação fantasma para o grupo
procedure TForm9.Button19Click(Sender: TObject);
	var
	erro:String;
	begin

	  if edtIdGrupo.Text <> '' then
		 ApiEuAtendo1.SendMessageGhostMentionToGroup(edtIdGrupo.Text,memoMensagemEnviar.Lines.text,erro);// SendMessageGhostMentionToGroup

	  if erro <> '' then
		ShowMessage(erro);
	end;
```

## Tratamento de Erros

Certifique-se de que os IDs dos grupos e os contatos estejam corretos. Caso haja algum erro, a variável `ErrorMsg` retornará uma descrição detalhada do erro para que você possa corrigi-lo.
