azure-communication-common-java
Ajuda seu agente com utilitários comuns para comunicação. É usado para autenticação e gerenciamento de tokens em serviços de comunicação.
O que ela faz
Esta ferramenta ajuda desenvolvedores a gerenciar a autenticação e a identificar usuários em serviços de comunicação da Microsoft Azure. Ela facilita a conexão segura e o reconhecimento de diferentes tipos de usuários, como usuários do Azure Communication Services, números de telefone e usuários do Microsoft Teams.
Quando usar
- ✓Ao configurar a autenticação para um novo aplicativo de comunicação.
- ✓Quando precisar identificar um usuário específico em uma chamada ou chat.
- ✓Ao implementar a atualização automática de tokens de acesso para manter a conexão ativa.
Exemplo do que pedir para a IA
“Como faço para configurar a autenticação para um usuário do Azure Communication Services usando um token?”
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
Ela fornece blocos de código prontos que os desenvolvedores podem usar para autenticar usuários. Isso envolve a criação de objetos que representam os usuários e a configuração de como os tokens de acesso são gerenciados, incluindo atualizações automáticas.
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-common-javaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-communication-common-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 Common (Java)
Utilitários de autenticação compartilhados e estruturas de dados para Azure Communication Services.
Instalação
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-common</artifactId>
<version>1.4.0</version>
</dependency>
Conceitos Chave
| Classe | Propósito |
|---|---|
CommunicationTokenCredential |
Autenticar usuários com serviços ACS |
CommunicationTokenRefreshOptions |
Configurar atualização automática de token |
CommunicationUserIdentifier |
Identificar usuários ACS |
PhoneNumberIdentifier |
Identificar números de telefone PSTN |
MicrosoftTeamsUserIdentifier |
Identificar usuários do Teams |
UnknownIdentifier |
Identificador genérico para tipos desconhecidos |
CommunicationTokenCredential
Token Estático (Clientes de Curta Duração)
import com.azure.communication.common.CommunicationTokenCredential;
// Simple static token - no refresh
String userToken = "<user-access-token>";
CommunicationTokenCredential credential = new CommunicationTokenCredential(userToken);
// Use with Chat, Calling, etc.
ChatClient chatClient = new ChatClientBuilder()
.endpoint("https://<resource>.communication.azure.com")
.credential(credential)
.buildClient();
Atualização Proativa de Token (Clientes de Longa Duração)
import com.azure.communication.common.CommunicationTokenRefreshOptions;
import java.util.concurrent.Callable;
// Token refresher callback - called when token is about to expire
Callable<String> tokenRefresher = () -> {
// Call your server to get a fresh token
return fetchNewTokenFromServer();
};
// With proactive refresh
CommunicationTokenRefreshOptions refreshOptions = new CommunicationTokenRefreshOptions(tokenRefresher)
.setRefreshProactively(true) // Refresh before expiry
.setInitialToken(currentToken); // Optional initial token
CommunicationTokenCredential credential = new CommunicationTokenCredential(refreshOptions);
Atualização de Token Assíncrona
import java.util.concurrent.CompletableFuture;
// Async token fetcher
Callable<String> asyncRefresher = () -> {
CompletableFuture<String> future = fetchTokenAsync();
return future.get(); // Block until token is available
};
CommunicationTokenRefreshOptions options = new CommunicationTokenRefreshOptions(asyncRefresher)
.setRefreshProactively(true);
CommunicationTokenCredential credential = new CommunicationTokenCredential(options);
Autenticação Entra ID (Azure AD)
import com.azure.identity.InteractiveBrowserCredentialBuilder;
import com.azure.communication.common.EntraCommunicationTokenCredentialOptions;
import java.util.Arrays;
import java.util.List;
// For Teams Phone Extensibility
InteractiveBrowserCredential entraCredential = new InteractiveBrowserCredentialBuilder()
.clientId("<your-client-id>")
.tenantId("<your-tenant-id>")
.redirectUrl("<your-redirect-uri>")
.build();
String resourceEndpoint = "https://<resource>.communication.azure.com";
List<String> scopes = Arrays.asList(
"https://auth.msft.communication.azure.com/TeamsExtension.ManageCalls"
);
EntraCommunicationTokenCredentialOptions entraOptions =
new EntraCommunicationTokenCredentialOptions(entraCredential, resourceEndpoint)
.setScopes(scopes);
CommunicationTokenCredential credential = new CommunicationTokenCredential(entraOptions);
Identificadores de Comunicação
CommunicationUserIdentifier
import com.azure.communication.common.CommunicationUserIdentifier;
// Create identifier for ACS user
CommunicationUserIdentifier user = new CommunicationUserIdentifier("8:acs:resource-id_user-id");
// Get raw ID
String rawId = user.getId();
PhoneNumberIdentifier
import com.azure.communication.common.PhoneNumberIdentifier;
// E.164 format phone number
PhoneNumberIdentifier phone = new PhoneNumberIdentifier("+14255551234");
String phoneNumber = phone.getPhoneNumber(); // "+14255551234"
String rawId = phone.getRawId(); // "4:+14255551234"
MicrosoftTeamsUserIdentifier
import com.azure.communication.common.MicrosoftTeamsUserIdentifier;
// Identificador de usuário do Teams
MicrosoftTeamsUserIdentifier teamsUser = new MicrosoftTeamsUserIdentifier("<teams-user-id>")
.setCloudEnvironment(CommunicationCloudEnvironment.PUBLIC);
// Para usuários anônimos do Teams
MicrosoftTeamsUserIdentifier anonymousTeamsUser = new MicrosoftTeamsUserIdentifier("<teams-user-id>")
.setAnonymous(true);
…
Perguntas frequentes
O que são 'identificadores'?
São formas de representar e distinguir diferentes tipos de usuários ou números de telefone dentro dos serviços de comunicação.
O que é um 'token'?
É uma chave temporária que permite que um usuário acesse os serviços de comunicação de forma segura.
Como o sistema lida com tokens que expiram?
Ele pode ser configurado para atualizar os tokens automaticamente antes que expirem, garantindo que a conexão do usuário não seja interrompida.
Detalhes
Descrição original do autor
Azure Communication Services common utilities for Java. Use when working with CommunicationTokenCredential, user identifiers, token refresh, or shared authentication across ACS services.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2298
- 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