Bibliothèque cliente Azure Communication Chat pour Java - version 1.3.13
Azure Communication Chat contient les API utilisées dans les applications de conversation pour Azure Communication Services.
| Code sourcePackage (Maven) | Documentation de référence sur les | APIDocumentation produit
Prise en main
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Java Development Kit (JDK) version 8 ou ultérieure.
- Apache Maven.
- Une ressource Communication Services déployée. Vous pouvez utiliser le portail Azure ou le Azure PowerShell pour le configurer.
Inclure le package
Inclure le fichier de nomenclature
Incluez le kit azure-sdk-bom à votre projet pour qu’il soit dépendant de la version disponibilité générale (GA) de la bibliothèque. Dans l’extrait de code suivant, remplacez l’espace réservé {bom_version_to_target} par le numéro de version. Pour en savoir plus sur la nomenclature, consultez LE FICHIER README DE NOMENCLATURE DU KIT DE DÉVELOPPEMENT LOGICIEL AZURE.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Incluez ensuite la dépendance directe dans la section des dépendances sans la balise de version.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-chat</artifactId>
</dependency>
</dependencies>
Inclure une dépendance directe
Si vous souhaitez prendre la dépendance sur une version particulière de la bibliothèque qui n’est pas présente dans la nomenclature, ajoutez la dépendance directe à votre projet comme suit.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-chat</artifactId>
<version>1.3.13</version>
</dependency>
Concepts clés
Une conversation de conversation est représentée par un thread de conversation. Les utilisateurs d’un fil de conversation sont des « participants ». Les participants peuvent discuter entre eux en privé dans une conversation 1 :1 ou s’entretrer dans une conversation de groupe 1 :N.
Une fois que vous avez initialisé une ChatClient
classe et une ChatThreadClient
classe, vous pouvez effectuer les opérations de conversation suivantes :
Créer, obtenir, répertorier, mettre à jour et supprimer des threads de conversation
Envoyer, obtenir, répertorier, mettre à jour et supprimer des messages de conversation
Obtenir, ajouter et supprimer des participants
Envoyer et obtenir des reçus de lecture
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) spécifiant que vous avez le droit de nous accorder les droits d’utiliser votre contribution, et que vous nous les accordez.
Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.
Définir le point de terminaison de ressource de communication Azure après sa création
endpoint = « https:// Azure-Communication-Resource-Name.communications.azure.com »
Demander un jeton d’accès utilisateur
Les jetons d’accès utilisateur vous permettent de créer des applications clientes qui s’authentifient directement auprès d’Azure Communication Services. Vous générez ces jetons sur votre serveur, vous les transmettez à un appareil client, puis vous les utilisez pour initialiser les sdk Communication Services.
Découvrez comment générer des jetons d’accès utilisateur à partir de jetons d’accès utilisateur
Exemples
Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches les plus courantes, notamment :
- Créer le client de conversation
- Opérations de thread de conversation
- Opérations de message de conversation
- Opérations de participant au thread de conversation
- Opérations de confirmation de lecture
- Opérations de notification de saisie
Créer le client de conversation
String endpoint = "https://<RESOURCE_NAME>.communcationservices.azure.com";
// Your user access token retrieved from your trusted service
String token = "SECRET";
CommunicationTokenCredential credential = new CommunicationTokenCredential(token);
// Initialize the chat client
final ChatClientBuilder builder = new ChatClientBuilder();
builder.endpoint(endpoint)
.credential(credential);
ChatClient chatClient = builder.buildClient();
Opérations de thread de conversation
Créer un fil de conversation
Pour créer un client de conversation, vous allez utiliser le point de terminaison Communications Service et le jeton d’accès qui a été généré dans le cadre des étapes préalables requises. Les jetons d’accès utilisateur vous permettent de créer des applications clientes qui s’authentifient directement auprès d’Azure Communication Services. Une fois que vous avez généré ces jetons sur votre serveur, transmettez-les en retour à un appareil client. Vous devez utiliser la classe CommunicationTokenCredential du kit de développement logiciel (SDK) commun pour transmettre le jeton à votre client de conversation.
Utilisez la méthode createChatThread
pour créer un fil de conversation.
createChatThreadOptions
est utilisé pour décrire la demande de thread. Un exemple est illustré dans l’extrait de code ci-dessous.
- Utilisez
topic
pour donner une rubrique de thread ; - Permet
participants
de répertorier les participants au thread à ajouter au thread ;
CreateChatThreadResult
correspond à la réponse renvoyée par la création d’un fil de conversation.
Elle contient une méthode getChatThread()
qui renvoie l'objet ChatThread
permettant d’obtenir le client de fil de conversation à partir duquel obtenir ChatThreadClient
pour effectuer des opérations sur la conversation créée : ajout de participants, envoi d’un message, etc. L'objet ChatThread
contient également la méthode getId()
qui récupère l’ID unique de la conversation.
List<ChatParticipant> participants = new ArrayList<ChatParticipant>();
ChatParticipant firstParticipant = new ChatParticipant()
.setCommunicationIdentifier(user1)
.setDisplayName("Participant Display Name 1");
ChatParticipant secondParticipant = new ChatParticipant()
.setCommunicationIdentifier(user2)
.setDisplayName("Participant Display Name 2");
participants.add(firstParticipant);
participants.add(secondParticipant);
CreateChatThreadOptions createChatThreadOptions = new CreateChatThreadOptions("Topic")
.setParticipants(participants);
CreateChatThreadResult result = chatClient.createChatThread(createChatThreadOptions);
String chatThreadId = result.getChatThread().getId();
Obtenir les propriétés d’un thread de conversation
La getChatThreadProperties
méthode récupère les propriétés d’un thread à partir du service.
ChatThreadClient chatThreadClient = chatClient.getChatThreadClient("Id");
ChatThreadProperties chatThreadProperties = chatThreadClient.getProperties();
Supprimer un thread
Utiliser deleteChatThread
la méthode pour supprimer un thread chatThreadId
de conversation est l’ID unique du thread de conversation.
String chatThreadId = "Id";
chatClient.deleteChatThread(chatThreadId);
Obtenir un client de fil de conversation
La méthode getChatThreadClient
retourne un client de fil pour un fil qui existe déjà. Elle peut être utilisée pour effectuer des opérations sur le fil créé : ajout de participants, envoi d’un message, etc. chatThreadId
est l’ID unique du fil de conversation existant.
String chatThreadId = "Id";
ChatThreadClient chatThreadClient = chatClient.getChatThreadClient(chatThreadId);
Mettre à jour une rubrique de thread de conversation
La méthode d’utilisation updateTopic
pour mettre à jour la rubrique topic
d’un thread est utilisée pour contenir la nouvelle rubrique du thread.
chatThreadClient.updateTopic("New Topic");
Opérations de message de conversation
Envoyer un message de conversation
Utilisez la sendMessage
méthode pour envoyer un message de conversation au thread de conversation avec lequel le chatThreadClient
a été créé.
sendChatMessageOptions
est utilisé pour décrire la demande de message de conversation. Un exemple est illustré dans l’extrait de code ci-dessous.
- Utilisez
content
pour fournir le contenu du message de conversation ; - Permet
priority
de spécifier le niveau de priorité du message de conversation, tel que « Normal » ou « Élevé » ; - Utilisez
senderDisplayName
pour spécifier le nom d’affichage de l’expéditeur ;
Réponse SendChatMessageResult
retournée par l’envoi d’un message de conversation, elle contient un ID, qui est l’ID unique du message.
SendChatMessageOptions sendChatMessageOptions = new SendChatMessageOptions()
.setContent("Message content")
.setSenderDisplayName("Sender Display Name");
SendChatMessageResult sendResult = chatThreadClient.sendMessage(sendChatMessageOptions);
Obtenir un message de conversation
La getMessage
méthode récupère un message de conversation à partir du service.
chatMessageId
est l’ID unique du message de conversation.
String chatMessageId = "Id";
ChatMessage chatMessage = chatThreadClient.getMessage(chatMessageId);
Obtenir des messages de conversation
Vous pouvez récupérer des messages de conversation à l’aide de la listMessages
méthode sur le client de thread de conversation à des intervalles spécifiés (interrogation).
PagedIterable<ChatMessage> chatMessagesResponse = chatThreadClient.listMessages();
chatMessagesResponse.iterableByPage().forEach(resp -> {
System.out.printf("Response headers are %s. Url %s and status code %d %n", resp.getHeaders(),
resp.getRequest().getUrl(), resp.getStatusCode());
resp.getElements().forEach(message ->
System.out.printf("Message id is %s.", message.getId()));
});
listMessages
retourne la version la plus récente du message, avec les modifications ou les suppressions dont le message a éventuellement fait l’objet via .editMessage()
et .deleteMessage()
.
Pour les messages supprimés, chatMessage.getDeletedOn()
retourne une valeur datetime indiquant à quel moment ce message a été supprimé.
Pour les messages modifiés, chatMessage.getEditedOn()
retourne une valeur datetime indiquant à quel moment ce message a été modifié.
Il est possible d’accéder à l’heure initiale de création du message à l’aide de chatMessage.getCreatedOn()
; elle peut être utilisée à des fins de classement des messages.
listMessages retourne différents types de messages qui peuvent être identifiés par chatMessage.getType()
. Ces types sont les suivants :
text
: Message de conversation ordinaire envoyé par un participant au fil de conversation.html
: message de conversation envoyé par un participant au fil de conversation.topicUpdated
: Message système qui indique que le sujet a été mis à jourparticipantAdded
: Message système qui indique qu’un ou plusieurs participants ont été ajoutés au fil de conversation.participantRemoved
: Message système qui indique qu’un participant a été supprimé du fil de conversation.
Pour plus d’informations, consultez Types de messages.
Mettre à jour un message de conversation
Utilisez updateMessage
pour mettre à jour un message de conversation identifié par chatThreadId et messageId.
chatMessageId
est l’ID unique du message de conversation.
updateChatMessageOptions
est utilisé pour décrire la demande de mise à jour d’un message de conversation. Un exemple est illustré dans l’extrait de code ci-dessous.
- Utilisez
content
pour fournir un nouveau contenu de message de conversation ;
String chatMessageId = "Id";
UpdateChatMessageOptions updateChatMessageOptions = new UpdateChatMessageOptions()
.setContent("Updated message content");
chatThreadClient.updateMessage(chatMessageId, updateChatMessageOptions);
Supprimer un message de conversation
Utilisez updateMessage
pour mettre à jour un message de conversation identifié par chatMessageId.
chatMessageId
est l’ID unique du message de conversation.
String chatMessageId = "Id";
chatThreadClient.deleteMessage(chatMessageId);
Opérations des participants au thread de conversation
Répertorier les participants à la conversation
Utilisez listParticipants
pour récupérer une collection paginée contenant les participants du fil de conversation.
PagedIterable<ChatParticipant> chatParticipantsResponse = chatThreadClient.listParticipants();
chatParticipantsResponse.iterableByPage().forEach(resp -> {
System.out.printf("Response headers are %s. Url %s and status code %d %n", resp.getHeaders(),
resp.getRequest().getUrl(), resp.getStatusCode());
resp.getElements().forEach(chatParticipant ->
System.out.printf("Participant id is %s.", ((CommunicationUserIdentifier) chatParticipant.getCommunicationIdentifier()).getId()));
});
Ajouter des participants
Utilisez addParticipants
la méthode pour ajouter des participants au fil de conversation.
participants
liste des participants à ajouter au thread ;
communicationIdentifier
, obligatoire, est le CommunicationIdentifier que vous avez créé à l’aide de CommunicationIdentityClient. Plus d’informations sur : Créer un utilisateur.display_name
, facultatif, est le nom d’affichage du membre du fil.share_history_time
, facultatif, est le moment à partir duquel l’historique de conversation est partagé avec le membre. Pour partager l’historique depuis le début du fil de conversation, attribuez à cette propriété une date égale ou antérieure à la date de création du fil. Pour ne partager aucun historique antérieur au moment où le membre a été ajouté, attribuez-lui l’heure actuelle. Pour partager un historique partiel, attribuez-lui la date de votre choix.
List<ChatParticipant> participants = new ArrayList<ChatParticipant>();
ChatParticipant firstParticipant = new ChatParticipant()
.setCommunicationIdentifier(user1)
.setDisplayName("Display Name 1");
ChatParticipant secondParticipant = new ChatParticipant()
.setCommunicationIdentifier(user2)
.setDisplayName("Display Name 2");
participants.add(firstParticipant);
participants.add(secondParticipant);
chatThreadClient.addParticipants(participants);
Retirer un participant
Utilisez removeParticipant
la méthode pour supprimer un participant du fil de conversation.
identifier
est le CommunicationIdentifier que vous avez créé.
chatThreadClient.removeParticipant(user);
Opérations de confirmation de lecture
Envoyer une confirmation de lecture
Utilisez sendReadReceipt
la méthode pour publier un événement de confirmation de lecture sur un fil de conversation, au nom d’un utilisateur.
chatMessageId
correspond à ID unique du message de conversation lu.
String chatMessageId = "Id";
chatThreadClient.sendReadReceipt(chatMessageId);
Obtenir des confirmations de lecture
getReadReceipts
la méthode récupère les confirmations de lecture pour un fil de conversation.
PagedIterable<ChatMessageReadReceipt> readReceiptsResponse = chatThreadClient.listReadReceipts();
readReceiptsResponse.iterableByPage().forEach(resp -> {
System.out.printf("Response headers are %s. Url %s and status code %d %n", resp.getHeaders(),
resp.getRequest().getUrl(), resp.getStatusCode());
resp.getElements().forEach(readReceipt ->
System.out.printf("Read message id is %s.", readReceipt.getChatMessageId()));
});
Opérations de notification de saisie
Envoyer une notification de saisie
Utilisez sendTypingNotification
la méthode pour publier un événement de notification de saisie sur un thread de conversation, au nom d’un utilisateur.
typingNotificationOptions
est utilisé pour décrire la demande de notification de saisie.
- Utilisez
senderDisplayName
pour définir le nom d’affichage de l’expéditeur de la notification ;
TypingNotificationOptions options = new TypingNotificationOptions();
options.setSenderDisplayName("Sender Display Name");
chatThreadClient.sendTypingNotificationWithResponse(options, Context.NONE);
Dépannage
En cours.
Étapes suivantes
Consulter d’autres bibliothèques clientes pour le service de communication Azure