azure-communication-chat-java
Faz seu agente criar aplicativos de chat em tempo real. Ele gerencia conversas, participantes e mensagens.
O que ela faz
Esta ferramenta permite criar e gerenciar chats em tempo real. Você pode adicionar pessoas, enviar mensagens (texto ou HTML), ver quem leu as mensagens e saber quando alguém está digitando.
Quando usar
- ✓Criar um chat para um grupo de amigos.
- ✓Desenvolver um sistema de mensagens para um aplicativo.
- ✓Implementar um chat em um site para suporte ao cliente.
Exemplo do que pedir para a IA
“Crie um chat chamado 'Reunião de Projeto' com Alice e Bob, e envie a mensagem 'Olá a todos!' como Alice.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você usa um código especial (chamado 'client') para se conectar ao serviço de chat. Com esse código, você pode criar salas de bate-papo, adicionar participantes e enviar/receber mensagens.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-communication-chat-javaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-communication-chat-java/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Azure Communication Chat (Java)
Crie aplicativos de chat em tempo real com gerenciamento de threads, mensagens, participantes e confirmações de leitura.
Instalação
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-chat</artifactId>
<version>1.6.0</version>
</dependency>
Criação do Cliente
import com.azure.communication.chat.ChatClient;
import com.azure.communication.chat.ChatClientBuilder;
import com.azure.communication.chat.ChatThreadClient;
import com.azure.communication.common.CommunicationTokenCredential;
// ChatClient requires a CommunicationTokenCredential (user access token)
String endpoint = "https://<resource>.communication.azure.com";
String userAccessToken = "<user-access-token>";
CommunicationTokenCredential credential = new CommunicationTokenCredential(userAccessToken);
ChatClient chatClient = new ChatClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
// Async client
ChatAsyncClient chatAsyncClient = new ChatClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildAsyncClient();
Conceitos Chave
| Classe | Propósito |
|---|---|
ChatClient |
Criar/excluir threads de chat, obter clientes de thread |
ChatThreadClient |
Operações dentro de uma thread (mensagens, participantes, confirmações) |
ChatParticipant |
Usuário em uma thread de chat com nome de exibição |
ChatMessage |
Conteúdo da mensagem, tipo, informações do remetente, carimbos de data/hora |
ChatMessageReadReceipt |
Rastreamento de confirmação de leitura por participante |
Criar Thread de Chat
import com.azure.communication.chat.models.*;
import com.azure.communication.common.CommunicationUserIdentifier;
import java.util.ArrayList;
import java.util.List;
// Define participants
List<ChatParticipant> participants = new ArrayList<>();
ChatParticipant participant1 = new ChatParticipant()
.setCommunicationIdentifier(new CommunicationUserIdentifier("<user-id-1>"))
.setDisplayName("Alice");
ChatParticipant participant2 = new ChatParticipant()
.setCommunicationIdentifier(new CommunicationUserIdentifier("<user-id-2>"))
.setDisplayName("Bob");
participants.add(participant1);
participants.add(participant2);
// Create thread
CreateChatThreadOptions options = new CreateChatThreadOptions("Project Discussion")
.setParticipants(participants);
CreateChatThreadResult result = chatClient.createChatThread(options);
String threadId = result.getChatThread().getId();
// Get thread client for operations
ChatThreadClient threadClient = chatClient.getChatThreadClient(threadId);
Enviar Mensagens
// Send text message
SendChatMessageOptions messageOptions = new SendChatMessageOptions()
.setContent("Hello, team!")
.setSenderDisplayName("Alice")
.setType(ChatMessageType.TEXT);
SendChatMessageResult sendResult = threadClient.sendMessage(messageOptions);
String messageId = sendResult.getId();
// Send HTML message
SendChatMessageOptions htmlOptions = new SendChatMessageOptions()
.setContent("<strong>Important:</strong> Meeting at 3pm")
.setType(ChatMessageType.HTML);
threadClient.sendMessage(htmlOptions);
Obter Mensagens
import com.azure.core.util.paging.PagedIterable;
// List all messages
PagedIterable<ChatMessage> messages = threadClient.listMessages();
for (ChatMessage message : messages) {
System.out.println("ID: " + message.getId());
System.out.println("Type: " + message.getType());
System.out.println("Content: " + message.getContent().getMessage());
System.out.println("Sender: " + message.getSenderDisplayName());
System.out.println("Created: " + message.getCreatedOn());
// Check if edited or deleted
if (message.getEditedOn() != null) {
System.out.println("Edited: " + message.getEditedOn());
}
if (message.getDeletedOn() != null) {
System.out.println("Deleted: " + message.getDeletedOn());
}
}
// Get specific message
ChatMessage message = threadClient.getMessage(messageId);
Atualizar e Excluir Mensagens
// Update message
UpdateChatMessageOptions updateOptions = new UpdateChatMessageOptions()
.setContent("Updated message content");
threadClient.updateMessage(messageId, updateOptions);
// Delete message
threadClient.deleteMessage(messageId);
Gerenciar Participantes
// Listar participantes
PagedIterable<ChatParticipant> participants = threadClient.listParticipants();
for (ChatParticipant participant : participants) {
…
Perguntas frequentes
O que é um 'thread'?
Um 'thread' é como uma sala de bate-papo específica onde as pessoas conversam.
O que são 'read receipts'?
'Read receipts' são confirmações de leitura, que mostram quem já leu uma mensagem específica.
Posso enviar mensagens formatadas?
Sim, você pode enviar mensagens em texto simples ou usando HTML para formatar o texto (por exemplo, deixar em negrito).
Detalhes
Descrição original do autor
Build real-time chat applications with thread management, messaging, participants, and read receipts.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2297
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
operator-approval-loop
Faz seu agente gerenciar o envio de mensagens com aprovação humana. Garante que mensagens importantes sejam revisadas antes de serem enviadas.
affaan-m/ECC
discernment-nudge
Faz seu agente adicionar perguntas de acompanhamento após dar uma resposta importante. É útil para garantir que você pense bem sobre conselhos ou planos antes de agir.
anthropics/skills
interview-me
Faz perguntas para entender exatamente o que você precisa. Garante que o agente compreenda sua real necessidade antes de começar o trabalho.
addyosmani/agent-skills