Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Voeg realtime chatten toe aan uw app met behulp van de Communication Services Chat SDK. In dit artikel wordt beschreven hoe u de Chat-SDK gebruikt om chatthreads te maken waarmee gebruikers gesprekken met elkaar kunnen voeren. Zie conceptuele documentatie voor chats voor meer informatie over chatconcepten.
Vereiste voorwaarden
Een Azure-account met een actief abonnement. Gratis een account maken
Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
Installeer Azure CLI.
Noteer uw Communication Services-resource-eindpunt. U kunt het eindpunt ophalen vanuit Azure Portal. U kunt ook de eindpunt-URL vinden in de verbindingsreeks. Het is de URL die erna
endpoint=
komt en begint methttps://
.EenToken voor gebruikerstoegang. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Inrichten
De extensie toevoegen
Voeg de Azure Communication Services-extensie voor Azure CLI toe met behulp van de az extension
opdracht.
az extension add --name communication
Aanmelden bij Azure CLI
U moet zich aanmelden bij Azure CLI. U kunt zich aanmelden door de az login
opdracht uit te voeren vanuit de terminal en uw referenties op te geven.
(Optioneel) Azure CLI-identiteitsbewerkingen gebruiken zonder een eindpunt of toegangstoken door te geven
Uw eindpunt opslaan in een omgevingsvariabele
U kunt de AZURE_COMMUNICATION_ENDPOINT
omgevingsvariabele configureren voor het gebruik van Azure CLI-chatbewerkingen zonder dat u het eindpunt hoeft door te --endpoint
geven. Als u een omgevingsvariabele wilt configureren, opent u een consolevenster en selecteert u uw besturingssysteem op de volgende tabbladen. Vervang <yourEndpoint>
door uw werkelijke eindpunt.
Open een consolevenster en voer de volgende opdracht in:
setx AZURE_COMMUNICATION_ENDPOINT "<yourEndpoint>"
Nadat u de omgevingsvariabele hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabele moeten lezen, inclusief het consolevenster. Als u Visual Studio bijvoorbeeld gebruikt als editor, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.
Uw toegangstoken opslaan in een omgevingsvariabele
U kunt de AZURE_COMMUNICATION_ACCESS_TOKEN
omgevingsvariabele configureren voor het gebruik van Azure CLI-chatbewerkingen zonder dat u het toegangstoken hoeft door te --access-token
geven. Als u een omgevingsvariabele wilt configureren, opent u een consolevenster en selecteert u uw besturingssysteem op de volgende tabbladen. Vervang <yourAccessToken>
door uw werkelijke toegangstoken.
Open een consolevenster en voer de volgende opdracht in:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Nadat u de omgevingsvariabele hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabele moeten lezen, inclusief het consolevenster. Als u Visual Studio bijvoorbeeld gebruikt als editor, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.
Bedrijfsvoering
Een chat-thread starten
Gebruik de thread create
opdracht om een chatthread te maken.
az communication chat thread create --topic "<chatTopic>" --endpoint "<endpoint>" --access-token "<token>"
Als u het eindpunt en het toegangstoken hebt opgeslagen in omgevingsvariabelen zoals eerder vermeld, hoeft u ze niet door te geven aan de opdracht.
az communication chat thread create --topic "<chatTopic>"
- Gebruik
<chatTopic>
dit om de thread een onderwerp te geven. U kunt het onderwerp bijwerken nadat de chatthread is gemaakt met behulp van dethread update-topic
opdracht. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Het onderwerp van een chatgesprek bijwerken
az communication chat thread update-topic --thread "<chatThreadId>" --topic "<chatTopic>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatthread-id. - Vervang
<chatTopic>
door het nieuwe chatonderwerp dat u wilt instellen. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Alle chatthreads weergeven
De thread list
opdracht retourneert de lijst met chatthreads van een gebruiker.
az communication chat thread list --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Optioneel: Gebruik
<startTime>
dit om het vroegste tijdstip op te geven om chatberichten op te halen. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Een bericht verzenden naar een chat-thread
Gebruik de message send
opdracht om een bericht te verzenden naar een chatgesprek dat u hebt gemaakt, geïdentificeerd door threadId
.
az communication chat message send --thread "<chatThreadId>" --display-name "<displayName>" --content "<content>" --message-type "<messageType>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatthread-ID. - Gebruik
<content>
om de inhoud van het chatbericht te geven. - Gebruik
<messageType>
dit om het inhoudstype van het bericht op te geven. Mogelijke waarden zijntext
enhtml
. Als u geen waarde opgeeft, is de standaardwaardetext
. - U kunt desgewenst
<displayName>
gebruiken om de weergavenaam van de afzender op te geven. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Chatberichten weergeven in een chatgesprek
De message list
opdracht retourneert de lijst met chatberichten in een chatgesprek.
az communication chat message list --thread "<chatThreadId>" --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatdraad-ID. - Gebruik
<startTime>
optioneel om het vroegste tijdstip op te geven om chatberichten op te halen. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Een chatbericht ontvangen van een chatgesprek
U kunt chatberichten ophalen met behulp van de message list
opdracht.
az communication chat message get --thread "<chatThreadId>" --message-id "<messageId>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatthread-id. - Vervang door
<messageId>
de id van het bericht dat u wilt ophalen. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Leesbevestiging verzenden
U gebruikt de message receipt send
opdracht om een gebeurtenis met leesbevestiging te posten in een thread namens een gebruiker.
az communication chat message receipt send --thread "<chatThreadId>" --message-id "<messageId>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatdraad-ID. - Vervang
<messageId>
om de ID te specificeren van het meest recente bericht dat door de huidige gebruiker is gelezen. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Een gebruiker toevoegen als deelnemer aan de chatthread
Wanneer u een chat-thread maakt, kunt u er vervolgens gebruikers aan toevoegen en verwijderen. Door gebruikers toe te voegen, geeft u hen toegang om berichten naar de chatthread te verzenden en andere deelnemers toe te voegen of te verwijderen. Voordat u de participant add
opdracht aanroept, moet u ervoor zorgen dat u een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker hebt verkregen.
az communication chat participant add --thread "<chatThreadId>" --user "<userId>" --display-name "<displayName>" --start-time "<startTime>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatthread-ID. - Vervang
<userId>
door uw userId. - Optioneel kunt u de weergavenaam van de afzender opgeven.
- Gebruik
<startTime>
optioneel om het vroegste tijdstip op te geven om chatberichten op te halen. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Deelnemers aan een chatreeks weergeven
Net als bij het toevoegen van een deelnemer kunt u ook deelnemers uit een thread vermelden.
Gebruik participant list
de opdracht om de deelnemers aan de thread op te halen.
az communication chat participant list --thread "<chatThreadId>" --skip "<skip>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
door uw chatthread-id. - Gebruik
<skip>
optioneel om deelnemers over te slaan naar een opgegeven positie in het antwoord. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Een deelnemer verwijderen uit een chatgesprek
U kunt een chatdeelnemer verwijderen uit een chatgesprek met behulp van de opdracht Deelnemer verwijderen.
az communication chat participant remove --thread "<chatThreadId>" --user "<userId>" --endpoint "<endpoint>" --access-token "<token>"
- Vervang
<chatThreadId>
met uw chatthread-id. - Vervang
<userId>
door de userId die u wilt verwijderen uit de chat-thread. - Vervang
<endpoint>
door uw Azure Communication Services-eindpunt. - Vervang
<token>
door het toegangstoken dat u eerder hebt verkregen door de opdracht uit te voerenidentity token issue
.
Vereisten
Maak een Azure-account met een actief abonnement. Zie Gratis een account maken voor meer informatie.
Installeer Node.js Active LTS en Maintenance LTS-versies.
Maak een Azure Communication Services-resource. Zie Een Azure Communication Services-resource maken voor meer informatie. U moet uw resource-eindpunt en verbindingsreeks vastleggen voor dit artikel.
Maak drie Azure Communication Services-gebruikers en geef ze een token voor gebruikerstoegang uit. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. De volledige demo maakt een thread met twee eerste deelnemers en voegt vervolgens een derde deelnemer toe aan de thread. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Inrichten
Een nieuwe webtoepassing maken
Open eerst uw terminal of opdrachtvenster, maak een nieuwe map voor uw app en navigeer daarnaartoe.
mkdir chat-quickstart && cd chat-quickstart
Voer npm init -y
uit om een package.json-bestand te maken met de standaardinstellingen.
npm init -y
De pakketten installeren
Gebruik de npm install
opdracht om de volgende Communication Services SDK's voor JavaScript te installeren.
npm install @azure/communication-common --save
npm install @azure/communication-identity --save
npm install @azure/communication-signaling --save
npm install @azure/communication-chat --save
De optie --save
geeft de bibliotheek weer als afhankelijkheid in het package.json-bestand.
Stel het app-framework in
In dit artikel wordt gebruikgemaakt van pakket om de toepassingsassets te bundelen. Voer de volgende opdracht uit om deze te installeren en weer te geven als een ontwikkelingsafhankelijkheid in uw package.json:
npm install parcel --save-dev
Maak een index. html-bestand in de hoofdmap van uw project. Gebruik dit bestand als sjabloon om chatmogelijkheden toe te voegen met behulp van de Azure Communication Chat SDK voor JavaScript.
<!DOCTYPE html>
<html>
<head>
<title>Communication Client - Chat Sample</title>
</head>
<body>
<h4>Azure Communication Services</h4>
<h1>Chat Quickstart</h1>
<script src="./client.js" type="module"></script>
</body>
</html>
Maak een bestand in de hoofdmap van uw project met de naam client.js om de toepassingslogica voor dit artikel te bevatten.
Een chat-client maken
Als u een chatclient in uw web-app wilt maken, gebruikt u het Communications Service-eindpunt en het toegangstoken dat is gegenereerd als onderdeel van de vereiste stappen.
Met toegangstokens voor gebruikers kunt u clienttoepassingen maken die zich rechtstreeks verifiëren bij Azure Communication Services. Dit artikel heeft geen betrekking op het maken van een servicelaag voor het beheren van tokens voor uw chattoepassing. Zie chatconcepten voor meer informatie over de chatarchitectuur. Zie tokens voor gebruikerstoegang voor meer informatie over toegangstokens.
In client.js het eindpunt en het toegangstoken in de volgende code gebruiken om chatmogelijkheden toe te voegen met behulp van de Azure Communication Chat SDK voor JavaScript.
import { ChatClient } from '@azure/communication-chat';
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
// Your unique Azure Communication service endpoint
let endpointUrl = '<replace with your resource endpoint>';
// The user access token generated as part of the pre-requisites
let userAccessToken = '<USER_ACCESS_TOKEN>';
let chatClient = new ChatClient(endpointUrl, new AzureCommunicationTokenCredential(userAccessToken));
console.log('Azure Communication Chat client created!');
- Vervang endpointUrl door het Communication Services-resource-eindpunt. Zie Een Azure Communication Services-resource maken voor meer informatie.
- Vervang userAccessToken door het token dat u hebt uitgegeven.
De code uitvoeren
Voer de volgende opdracht uit om uw toepassing uit te voeren:
npx parcel index.html
Open uw browser en navigeer naar http://localhost:1234/. In de console voor ontwikkelhulpprogramma's in uw browser ziet u het volgende:
Azure Communication Chat client created!
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Chat SDK voor JavaScript.
Name | Beschrijving |
---|---|
ChatClient | Deze klasse is vereist voor de chat-functionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, te ophalen, te verwijderen en u te abonneren op chat-gebeurtenissen. |
ChatThreadClient | Deze klasse is vereist voor de functionaliteit van de chat-thread. U verkrijgt een instantie via de ChatClient en gebruikt deze om berichten te verzenden, te ontvangen, bij te werken of te verwijderen, gebruikers toe te voegen, te verwijderen of op te halen, getypte meldingen te verzenden en bevestigingen te lezen. |
Een chat-thread starten
De methode createThread
gebruiken om een chat-thread te maken.
createThreadRequest
wordt gebruikt om de thread-aanvraag te beschrijven:
- Gebruik
topic
dit om een onderwerp aan deze chat te geven. Onderwerpen kunnen worden bijgewerkt nadat de chat-thread is gemaakt met behulp van deUpdateThread
functie. - Gebruik
participants
dit om de deelnemers weer te geven die moeten worden toegevoegd aan de chat-thread.
Wanneer opgelost, retourneert de createChatThread
methode een CreateChatThreadResult
. Dit model bevat een chatThread
eigenschap waarmee u toegang hebt tot de id
van de zojuist gemaakte thread. Vervolgens kunt u het id
gebruiken om een instantie van een ChatThreadClient
te verkrijgen. De ChatThreadClient
kan vervolgens worden gebruikt om bewerkingen uit te voeren binnen de thread, zoals het verzenden van berichten of het weergeven van deelnemers.
async function createChatThread() {
const createChatThreadRequest = {
topic: "Hello, World!"
};
const createChatThreadOptions = {
participants: [
{
id: { communicationUserId: '<USER_ID>' },
displayName: '<USER_DISPLAY_NAME>'
}
]
};
const createChatThreadResult = await chatClient.createChatThread(
createChatThreadRequest,
createChatThreadOptions
);
const threadId = createChatThreadResult.chatThread.id;
return threadId;
}
createChatThread().then(async threadId => {
console.log(`Thread created:${threadId}`);
// PLACEHOLDERS
// <CREATE CHAT THREAD CLIENT>
// <RECEIVE A CHAT MESSAGE FROM A CHAT THREAD>
// <SEND MESSAGE TO A CHAT THREAD>
// <LIST MESSAGES IN A CHAT THREAD>
// <ADD NEW PARTICIPANT TO THREAD>
// <LIST PARTICIPANTS IN A THREAD>
// <REMOVE PARTICIPANT FROM THREAD>
});
Wanneer u het browsertabblad vernieuwt, ziet u het volgende bericht in de console:
Thread created: <thread_id>
Een chat-thread-client ophalen
De methode getChatThreadClient
retourneert een chatThreadClient
voor een thread die al bestaat. Het kan worden gebruikt voor het uitvoeren van bewerkingen op de gemaakte thread: deelnemers toevoegen, bericht verzenden, enzovoort threadId is de unieke id van de bestaande chat-thread.
let chatThreadClient = chatClient.getChatThreadClient(threadId);
console.log(`Chat Thread client for threadId:${threadId}`);
Voeg deze code toe in plaats van de opmerking <CREATE CHAT THREAD CLIENT>
in client.js, vernieuw uw browsertabblad en controleer de console, waar u het volgende zou moeten zien:
Chat Thread client for threadId: <threadId>
Alle chatthreads weergeven
De listChatThreads
-methode geeft een PagedAsyncIterableIterator
van het type ChatThreadItem
terug. Deze kan worden gebruikt voor het weergeven van alle chatthreads.
Een iterator van [ChatThreadItem]
is de reactie die wordt geretourneerd bij het opsommen van threads.
const threads = chatClient.listChatThreads();
for await (const thread of threads) {
// your code here
}
Een bericht verzenden naar een chat-thread
Gebruik de methode sendMessage
om een bericht te verzenden naar een thread die wordt geïdentificeerd door threadId.
sendMessageRequest
wordt gebruikt om de berichtaanvraag te beschrijven:
- Gebruik
content
om de inhoud van het chat bericht te geven;
sendMessageOptions
wordt gebruikt om de optionele parameters van de bewerking te beschrijven:
- Gebruik
senderDisplayName
om de weergavenaam van de afzender op te geven; - Gebruik
type
deze indeling om het berichttype op te geven, zoals 'tekst' of 'html'; - Gebruik eventueel
metadata
om elke andere gegevens die u samen met het bericht wilt verzenden op te nemen. Dit veld biedt ontwikkelaars een mechanisme om de functionaliteit van chatberichten uit te breiden en aangepaste informatie toe te voegen voor uw use-case. Als u bijvoorbeeld een bestandskoppeling in het bericht deelt, kunt u hasAttachment: true toevoegen in metagegevens, zodat de toepassing van de geadresseerde deze kan parseren en dienovereenkomstig kan weergeven.
SendChatMessageResult
is het antwoord dat wordt geretourneerd van het verzenden van een bericht. Het bevat de unieke id van het bericht.
const sendMessageRequest =
{
content: 'Please take a look at the attachment'
};
let sendMessageOptions =
{
senderDisplayName : 'Jack',
type: 'text',
metadata: {
'hasAttachment': 'true',
'attachmentUrl': 'https://contoso.com/files/attachment.docx'
}
};
const sendChatMessageResult = await chatThreadClient.sendMessage(sendMessageRequest, sendMessageOptions);
const messageId = sendChatMessageResult.id;
console.log(`Message sent!, message id:${messageId}`);
Voeg deze code toe in plaats van de opmerking <SEND MESSAGE TO A CHAT THREAD>
in client.js, vernieuw uw browsertabblad en controleer de console.
Message sent!, message id:<number>
Chatberichten ontvangen van een chat-thread
Met realtime signalering kunt u zich abonneren om te luisteren naar nieuwe inkomende berichten en de huidige berichten dienovereenkomstig bij te werken in het geheugen. Azure Communication Services ondersteunt een lijst met gebeurtenissen waarop u zich kunt abonneren.
// open notifications channel
await chatClient.startRealtimeNotifications();
// subscribe to new notification
chatClient.on("chatMessageReceived", (e) => {
console.log("Notification chatMessageReceived!");
// your code here
});
Voeg deze code toe in plaats van de opmerking <RECEIVE A CHAT MESSAGE FROM A CHAT THREAD>
in client.js.
Wanneer u uw browsertabblad vernieuwt, zou u in de console een bericht Notification chatMessageReceived
moeten zien.
U kunt chatberichten ook ophalen door de methode listMessages
op opgegeven intervallen te pollen.
const messages = chatThreadClient.listMessages();
for await (const message of messages) {
// your code here
}
Voeg deze code toe in plaats van de opmerking <LIST MESSAGES IN A CHAT THREAD>
in client.js.
Vernieuw het tabblad, in de console vindt u de lijst met berichten die in deze chat-thread worden verzonden.
listMessages
retourneert verschillende typen berichten die u kunt identificeren door de chatMessage.type
.
Zie Berichttypen voor meer informatie.
Een gebruiker toevoegen als deelnemer aan de chatthread
Zodra u een chat-thread hebt gemaakt, kunt u gebruikers toevoegen en verwijderen. Door gebruikers toe te voegen, geeft u hen toegang om berichten naar de chatthread te verzenden en andere deelnemers toe te voegen/te verwijderen.
Voordat u de addParticipants
methode aanroept, moet u ervoor zorgen dat u een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker hebt verkregen. De gebruiker heeft dat toegangstoken nodig om de chatclient te initialiseren.
addParticipantsRequest
beschrijft het aanvraagobject waarin participants
de deelnemers worden vermeld die aan de chatthread moeten worden toegevoegd;
-
id
, vereist, is de communicatie-id die moet worden toegevoegd aan de chat-thread. -
displayName
, optioneel, is de weergavenaam voor de threaddeelnemer. -
shareHistoryTime
, optioneel, is het tijdstip waarop de chatgeschiedenis wordt gedeeld met de deelnemer. Als u de geschiedenis wilt delen sinds het begin van de chat-thread, stelt u deze eigenschap in op een willekeurige datum die gelijk is aan of kleiner is dan de aanmaaktijd van de thread. Als u geen geschiedenis wilt delen voordat de deelnemer is toegevoegd, stelt u deze in op de huidige datum. Om een deel van de geschiedenis te delen, stelt u de datum naar keuze in.
const addParticipantsRequest =
{
participants: [
{
id: { communicationUserId: '<NEW_PARTICIPANT_USER_ID>' },
displayName: 'Jane'
}
]
};
await chatThreadClient.addParticipants(addParticipantsRequest);
Vervang NEW_PARTICIPANT_USER_ID door een nieuwe gebruikers-id Voeg deze code toe in plaats van de opmerking in <ADD NEW PARTICIPANT TO THREAD>
client.js
Gebruikers in een chat-thread weergeven
const participants = chatThreadClient.listParticipants();
for await (const participant of participants) {
// your code here
}
Voeg deze code toe in plaats van de opmerking <LIST PARTICIPANTS IN A THREAD>
in client.js, vernieuw uw browsertabblad en controleer de console. U ziet informatie over gebruikers in een thread.
Gebruiker verwijderen uit een chat-thread
Net als bij het toevoegen van een deelnemer kunt u deelnemers verwijderen uit een chatgesprek. Als u wilt verwijderen, moet u de id's van de deelnemers bijhouden die u hebt toegevoegd.
Gebruik de methode removeParticipant
, waarbij participant
de communicatiegebruiker is die uit de thread moet worden verwijderd.
await chatThreadClient.removeParticipant({ communicationUserId: <PARTICIPANT_ID> });
await listParticipants();
Vervang PARTICIPANT_ID door een gebruikers-id die in de vorige stap (<NEW_PARTICIPANT_USER_ID>) is gebruikt.
Voeg deze code toe in plaats van de opmerking <REMOVE PARTICIPANT FROM THREAD>
in client.js.
Abonneren op de verbindingsstatus van realtime meldingen
Abonnement op gebeurtenissen realTimeNotificationConnected
en realTimeNotificationDisconnected
stelt u in staat te weten wanneer de verbinding met de aanroepserver actief is.
// subscribe to realTimeNotificationConnected event
chatClient.on('realTimeNotificationConnected', () => {
console.log("Real time notification is now connected!");
// your code here
});
// subscribe to realTimeNotificationDisconnected event
chatClient.on('realTimeNotificationDisconnected', () => {
console.log("Real time notification is now disconnected!");
// your code here
});
Voorbeeldcode
Zoek de voltooide code voor dit artikel in het GitHub-voorbeeld Chat toevoegen aan uw toepassing.
Vereisten
Maak een Azure-account met een actief abonnement. Zie Gratis een account maken voor meer informatie.
Installeer Python 3.7+.
Maak een Azure Communication Services-resource. Voor meer informatie, zie Quickstart: Maak en beheer Communication Services-bronnen. U moet uw resource-eindpunt en verbindingsreeks vastleggen voor dit artikel.
EenToken voor gebruikerstoegang. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Instellen
Een nieuwe Python-toepassing maken
Open uw terminal of opdrachtvenster, maak een nieuwe map voor uw app en ga naar het venster.
mkdir chat-quickstart && cd chat-quickstart
Gebruik een teksteditor om een bestand met de naam start-chat.py te maken in de hoofdmap van het project. Voeg de structuur voor het programma toe, inclusief eenvoudige verwerking van uitzonderingen. Voeg in de volgende secties alle broncode voor dit artikel toe aan dit bestand.
import os
# Add required SDK components from quickstart here
try:
print('Azure Communication Services - Chat Quickstart')
# Quickstart code goes here
except Exception as ex:
print('Exception:')
print(ex)
SDK installeren
Gebruik de volgende opdracht om de SDK te installeren:
pip install azure-communication-chat
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Chat SDK voor Python.
Name | Beschrijving |
---|---|
ChatClient |
Deze klasse is nodig voor de chatfunctionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, op te halen en te verwijderen. |
ChatThreadClient |
Deze klasse is nodig voor de functionaliteit van de chat-thread. U verkrijgt een exemplaar via ChatClient en gebruikt deze om berichten te verzenden, te ontvangen, bij te werken en te verwijderen. U kunt het ook gebruiken om gebruikers toe te voegen, te verwijderen en te krijgen, en om typmeldingen en leesbevestigingen te verzenden. |
Een chat-client maken
Als u een chatclient wilt maken, gebruikt u het Communication Services-eindpunt en het toegangstoken dat u hebt gegenereerd als onderdeel van de vereiste stappen.
pip install azure-communication-identity
from azure.communication.chat import ChatClient, CommunicationTokenCredential
endpoint = "<replace with your resource endpoint>"
chat_client = ChatClient(endpoint, CommunicationTokenCredential("<Access Token>"))
Dit artikel heeft geen betrekking op het maken van een servicelaag voor het beheren van tokens voor uw chattoepassing, maar het wordt aanbevolen. Zie de sectie 'Chatarchitectuur' van de chatconceptarchitectuur voor chatconcepten >voor meer informatie.
Een chat-thread starten
De methode create_chat_thread
gebruiken om een chat-thread te maken.
- Gebruik
topic
dit om de thread een onderwerp te geven. U kunt het onderwerp bijwerken nadat de chat-thread is gemaakt met behulp van deupdate_thread
functie. - Gebruik
thread_participants
dit om deChatParticipant
lijst weer te geven die moet worden toegevoegd aan de chat-thread. DeChatParticipant
gebruikt hetCommunicationUserIdentifier
type alsuser
.
CreateChatThreadResult
is het resultaat dat wordt teruggegeven bij het aanmaken van een thread. U kunt deze gebruiken om de id
van de chatdraad op te halen die is gemaakt. Dit id
kan vervolgens worden gebruikt om een ChatThreadClient
object op te halen met behulp van de get_chat_thread_client
methode. U kunt ChatThreadClient
gebruiken om andere chatbewerkingen aan deze chatdraad uit te voeren.
topic="test topic"
create_chat_thread_result = chat_client.create_chat_thread(topic)
chat_thread_client = chat_client.get_chat_thread_client(create_chat_thread_result.chat_thread.id)
Een chat-thread-client ophalen
De methode get_chat_thread_client
retourneert een thread-client voor een thread die al bestaat. U kunt deze gebruiken om bewerkingen uit te voeren op de gemaakte thread. U kunt bijvoorbeeld deelnemers toevoegen en berichten verzenden.
thread_id
is de unieke id van de bestaande chat-thread.
U kunt ChatThreadClient
andere chatbewerkingen uitvoeren voor deze chat-thread.
thread_id = create_chat_thread_result.chat_thread.id
chat_thread_client = chat_client.get_chat_thread_client(thread_id)
Alle chatthreads weergeven
De list_chat_threads
methode retourneert een iterator van het type ChatThreadItem
.
- Gebruik
start_time
om het vroegste tijdstip op te geven voor het ophalen van chatthreads. - Gebruik
results_per_page
om het maximaal aantal chatthreads op te geven dat per pagina wordt geretourneerd.
Een iterator van [ChatThreadItem]
is het antwoord dat wordt geretourneerd bij het weergeven van threads.
from datetime import datetime, timedelta
start_time = datetime.utcnow() - timedelta(days=2)
chat_threads = chat_client.list_chat_threads(results_per_page=5, start_time=start_time)
for chat_thread_item_page in chat_threads.by_page():
for chat_thread_item in chat_thread_item_page:
print(chat_thread_item)
print('Chat Thread Id: ', chat_thread_item.id)
Een bericht verzenden naar een chat-thread
Gebruik de send_message
methode om een bericht te verzenden naar een chatthread die u hebt gemaakt, geïdentificeerd door thread_id
.
- Gebruik
content
om de inhoud van het chatbericht te geven. - Gebruik
chat_message_type
dit om het inhoudstype van het bericht op te geven. Mogelijke waarden zijntext
enhtml
. Als u geen waarde opgeeft, is de standaardwaardetext
. - Gebruik
sender_display_name
om de weergavenaam van de afzender te geven. - Gebruik
metadata
om eventueel andere gegevens die u samen met het bericht wilt verzenden op te nemen. Dit veld biedt ontwikkelaars een mechanisme om de functionaliteit van chatberichten uit te breiden en aangepaste informatie toe te voegen voor uw use-case. Wanneer u bijvoorbeeld een bestandskoppeling in het bericht deelt, kunt u hasAttachment:true toevoegen aan metagegevens, zodat de toepassing van de geadresseerde deze kan parseren en dienovereenkomstig kan weergeven.
SendChatMessageResult
is het antwoord dat wordt geretourneerd van het verzenden van een bericht. Het bevat een ID, wat de unieke ID van het bericht is.
from azure.communication.chat import ChatMessageType
topic = "test topic"
create_chat_thread_result = chat_client.create_chat_thread(topic)
thread_id = create_chat_thread_result.chat_thread.id
chat_thread_client = chat_client.get_chat_thread_client(create_chat_thread_result.chat_thread.id)
content='Please take a look at the attachment'
sender_display_name='sender name'
metadata={
'hasAttachment': 'true',
'attachmentUrl': 'https://contoso.com/files/attachment.docx'
}
# specify chat message type with pre-built enumerations
send_message_result_w_enum = chat_thread_client.send_message(content=content, sender_display_name=sender_display_name, chat_message_type=ChatMessageType.TEXT, metadata=metadata)
print("Message sent: id: ", send_message_result_w_enum.id)
Chatberichten ontvangen van een chat-thread
U kunt chatberichten ophalen door de methode list_messages
op opgegeven intervallen te pollen.
- Gebruik
results_per_page
om het maximum aantal berichten op te geven dat per pagina moet worden geretourneerd. - Gebruik
start_time
voor het vroegste tijdstip op te geven om berichten op te halen.
Een iterator van [ChatMessage]
is het antwoord dat wordt geretourneerd bij het oplijsten van berichten.
from datetime import datetime, timedelta
start_time = datetime.utcnow() - timedelta(days=1)
chat_messages = chat_thread_client.list_messages(results_per_page=1, start_time=start_time)
for chat_message_page in chat_messages.by_page():
for chat_message in chat_message_page:
print("ChatMessage: Id=", chat_message.id, "; Content=", chat_message.content.message)
list_messages
retourneert de nieuwste versie van het bericht, inclusief eventuele bewerkingen of verwijderingen die zijn gebeurd met het bericht met behulp van update_message
en delete_message
. Voor verwijderde berichten ChatMessage.deleted_on
wordt een datetime
waarde geretourneerd die aangeeft wanneer dat bericht is verwijderd. Voor bewerkte berichten ChatMessage.edited_on
wordt een datetime
waarde geretourneerd die aangeeft wanneer het bericht is bewerkt. U kunt de oorspronkelijke tijd van het maken van een bericht openen met behulp van ChatMessage.created_on
, die kan worden gebruikt voor het rangschikken van de berichten.
list_messages
retourneert verschillende typen berichten, die u identificeert op basis van de ChatMessage.type
.
Zie Berichttypen voor meer informatie.
Leesbevestiging verzenden
U gebruikt de send_read_receipt
methode om namens een gebruiker een gebeurtenis met leesbevestiging te posten naar een thread.
- Hiermee
message_id
geeft u de id op van het meest recente bericht dat wordt gelezen door de huidige gebruiker.
content='hello world'
send_message_result = chat_thread_client.send_message(content)
chat_thread_client.send_read_receipt(message_id=send_message_result.id)
Een gebruiker toevoegen als deelnemer aan de chatthread
Wanneer u een chat-thread maakt, kunt u er vervolgens gebruikers aan toevoegen en verwijderen. Door gebruikers toe te voegen, geeft u hen toegang om berichten naar de chatthread te verzenden en andere deelnemers toe te voegen of te verwijderen. Voordat u de add_participants
methode aanroept, moet u ervoor zorgen dat u een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker hebt verkregen. De gebruiker heeft dat toegangstoken nodig om de chatclient te initialiseren.
U kunt een of meer gebruikers toevoegen aan de chatthread met behulp van de add_participants
methode, als er een nieuw toegangstoken en een nieuwe identiteit beschikbaar is voor alle gebruikers.
Er wordt een list(tuple(ChatParticipant, CommunicationError))
geretourneerd. Zodra de deelnemer succesvol is toegevoegd, wordt er een lege lijst verwacht. Als er een fout optreedt tijdens het toevoegen van een deelnemer, wordt de lijst gevuld met de mislukte deelnemers en de fout die is opgetreden.
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.chat import ChatParticipant
from datetime import datetime
# create 2 users
identity_client = CommunicationIdentityClient.from_connection_string('<connection_string>')
new_users = [identity_client.create_user() for i in range(2)]
# # conversely, you can also add an existing user to a chat thread; provided the user_id is known
# from azure.communication.identity import CommunicationUserIdentifier
#
# user_id = 'some user id'
# user_display_name = "Wilma Flinstone"
# new_user = CommunicationUserIdentifier(user_id)
# participant = ChatParticipant(
# identifier=new_user,
# display_name=user_display_name,
# share_history_time=datetime.utcnow())
participants = []
for _user in new_users:
chat_thread_participant = ChatParticipant(
identifier=_user,
display_name='Fred Flinstone',
share_history_time=datetime.utcnow()
)
participants.append(chat_thread_participant)
response = chat_thread_client.add_participants(participants)
def decide_to_retry(error, **kwargs):
"""
Insert some custom logic to decide if retry is applicable based on error
"""
return True
# verify if all users has been successfully added or not
# in case of partial failures, you can retry to add all the failed participants
retry = [p for p, e in response if decide_to_retry(e)]
if retry:
chat_thread_client.add_participants(retry)
Gespreksdeelnemers weergeven in een chatgesprek
Net als bij het toevoegen van een deelnemer kunt u ook deelnemers uit een thread vermelden.
Gebruik list_participants
om de deelnemers aan de thread op te halen. Beide van de volgende opdrachten zijn optioneel:
- Gebruik
results_per_page
om het maximum aantal deelnemers op te geven dat per pagina moet worden geretourneerd. - Gebruik
skip
om deelnemers tot een opgegeven positie in de respons over te slaan.
Een iterator van [ChatParticipant]
is het antwoord dat wordt geretourneerd bij het opvragen van deelnemers.
chat_thread_participants = chat_thread_client.list_participants()
for chat_thread_participant_page in chat_thread_participants.by_page():
for chat_thread_participant in chat_thread_participant_page:
print("ChatParticipant: ", chat_thread_participant)
De code uitvoeren
Voer de toepassing uit vanuit uw toepassingsmap met de opdracht python
.
python start-chat.py
Voorbeeldcode
Zoek de voltooide code voor dit artikel in het GitHub-voorbeeld Chat toevoegen aan uw toepassing.
Vereisten
Een Azure-account met een actief abonnement. Gratis een account maken
Java Development Kit (JDK) versie 8 of hoger.
Maak een Azure Communication Services-resource. Zie Een Azure Communication Services-resource maken voor meer informatie. U moet uw resource-eindpunt en verbindingsreeks vastleggen voor dit artikel.
EenToken voor gebruikerstoegang. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Inrichten
Een nieuwe Java-toepassing maken
Open uw terminal- of opdrachtvenster en navigeer naar de map waarin u uw Java-toepassing wilt maken. Voer de volgende opdracht uit om het Java-project te genereren vanuit de maven-archetype-quickstart
-sjabloon.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Het generate
doel is een map met dezelfde naam als de artifactId
map te maken. Onder deze map bevat de src/main/java directory
projectbroncode, de src/test/java
map de testbron en het pom.xml
bestand is het Project Object Model van het project of POM van het project.
Het POM-bestand van uw toepassing bijwerken voor het gebruik van Java 8 of hoger:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Voeg de pakketverwijzingen voor de Chat-SDK toe
In uw POM-bestand verwijzen we naar het pakket azure-communication-chat
met de chat-API's:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-chat</artifactId>
<version><!-- Please refer to https://search.maven.org/artifact/com.azure/azure-communication-chat for the latest version --></version>
</dependency>
Voor verificatie moet uw client verwijzen naar het pakket azure-communication-common
.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-common</artifactId>
<version><!-- Please refer to https://search.maven.org/artifact/com.azure/azure-communication-common for the latest version --></version>
</dependency>
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Chat SDK voor Java.
Name | Beschrijving |
---|---|
ChatClient | Deze klasse is vereist voor de chat-functionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, op te halen en te verwijderen. |
ChatAsyncClient | Deze klasse is vereist voor de asynchrone chat-functionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, op te halen en te verwijderen. |
ChatThreadClient | Deze klasse is vereist voor de functionaliteit van de chat-thread. U verkrijgt een instantie via de ChatClient en gebruikt deze om berichten te verzenden, te ontvangen, bij te werken of te verwijderen, gebruikers toe te voegen, te verwijderen of op te halen, getypte meldingen te verzenden en bevestigingen te lezen. |
ChatThreadAsyncClient | Deze klasse is vereist voor de functionaliteit van de asynchrone chat-thread. U verkrijgt een instantie via de ChatAsyncClient en gebruikt deze om berichten te verzenden/ontvangen/bijwerken/verwijderen, gebruikers toe te voegen/te verwijderen of te verzenden, getypte meldingen te verzenden en bevestigingen te lezen. |
Een chat-client maken
Als u een chatclient wilt maken, gebruikt u het communicatieservice-eindpunt en het toegangstoken dat is gegenereerd als onderdeel van de vereiste stappen. Met toegangstokens voor gebruikers kunt u clienttoepassingen maken die zich rechtstreeks verifiëren bij Azure Communication Services. Zodra u deze tokens op uw server hebt gegenereerd, geeft u ze terug op een clientapparaat. U moet de CommunicationTokenCredential-klasse van de Common SDK gebruiken om het token door te geven aan uw chatclient.
Meer informatie over chatarchitectuur
Bij het toevoegen van de importverklaringen moet u ervoor zorgen dat u alleen imports toevoegt vanuit de com.azure.communication.chat en com.azure.communication.chat.models naamruimten, en niet vanuit de com.azure.communication.chat.implementation naamruimte. In het bestand App.java dat is gegenereerd via Maven, kunt u de volgende code gebruiken om te beginnen met:
package com.communication.quickstart;
import com.azure.communication.chat.*;
import com.azure.communication.chat.models.*;
import com.azure.communication.common.*;
import com.azure.core.http.rest.PagedIterable;
import java.io.*;
import java.util.*;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Chat Quickstart");
// Your unique Azure Communication service endpoint
String endpoint = "<replace with your resource endpoint>";
// User access token fetched from your trusted service
String userAccessToken = "<USER_ACCESS_TOKEN>";
// Create a CommunicationTokenCredential with the given access token, which is only valid until the token is valid
CommunicationTokenCredential userCredential = new CommunicationTokenCredential(userAccessToken);
// Initialize the chat client
final ChatClientBuilder builder = new ChatClientBuilder();
builder.endpoint(endpoint)
.credential(userCredential);
ChatClient chatClient = builder.buildClient();
}
}
Een chat-thread starten
De methode createChatThread
gebruiken om een chat-thread te maken.
createChatThreadOptions
wordt gebruikt om de thread-aanvraag te beschrijven.
- Gebruik de
topic
parameter van de constructor om een onderwerp aan deze chat te geven; Het onderwerp kan worden bijgewerkt nadat de chat-thread is gemaakt met behulp van deUpdateThread
functie. - Gebruik
participants
dit om de threaddeelnemers weer te geven die aan de thread moeten worden toegevoegd.ChatParticipant
neemt de gebruiker die u hebt gemaakt in het token voor gebruikerstoegang.
CreateChatThreadResult
is het antwoord dat wordt teruggegeven door het maken van een chatsessie.
Het bevat een getChatThread()
methode die het ChatThread
object retourneert dat kan worden gebruikt om de threadclient op te halen waaruit u de ChatThreadClient
bewerkingen voor het uitvoeren van bewerkingen op de gemaakte thread kunt ophalen: deelnemers toevoegen, bericht verzenden, enzovoort. Het ChatThread
object bevat ook de getId()
methode, waarmee de unieke id van de thread wordt opgehaald.
CommunicationUserIdentifier identity1 = new CommunicationUserIdentifier("<USER_1_ID>");
CommunicationUserIdentifier identity2 = new CommunicationUserIdentifier("<USER_2_ID>");
ChatParticipant firstThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity1)
.setDisplayName("Participant Display Name 1");
ChatParticipant secondThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity2)
.setDisplayName("Participant Display Name 2");
CreateChatThreadOptions createChatThreadOptions = new CreateChatThreadOptions("Topic")
.addParticipant(firstThreadParticipant)
.addParticipant(secondThreadParticipant);
CreateChatThreadResult result = chatClient.createChatThread(createChatThreadOptions);
String chatThreadId = result.getChatThread().getId();
Chatgesprekken weergeven
Gebruik de listChatThreads
methode om een lijst met bestaande chatthreads op te halen.
PagedIterable<ChatThreadItem> chatThreads = chatClient.listChatThreads();
chatThreads.forEach(chatThread -> {
System.out.printf("ChatThread id is %s.\n", chatThread.getId());
});
Een chat-thread-client ophalen
De methode getChatThreadClient
retourneert een thread-client voor een thread die al bestaat. Het kan worden gebruikt voor het uitvoeren van bewerkingen op de gemaakte thread: deelnemers toevoegen, bericht verzenden, enzovoort. chatThreadId
is de unieke id van de bestaande chat-thread.
ChatThreadClient chatThreadClient = chatClient.getChatThreadClient(chatThreadId);
Een bericht verzenden naar een chat-thread
Gebruik de sendMessage
methode om een bericht te verzenden naar de thread die u hebt gemaakt, geïdentificeerd door chatThreadId.
sendChatMessageOptions
wordt gebruikt om de aanvraag voor het chatbericht te beschrijven.
- Gebruik
content
om de inhoud van het chatbericht te geven. - Gebruik
type
dit om het inhoudstype van het chatbericht op te geven,TEXT
ofHTML
. - Gebruik
senderDisplayName
om de weergavenaam van de afzender te geven. - Gebruik
metadata
optioneel om eventuele andere gegevens mee te sturen met het bericht. Dit veld biedt ontwikkelaars een mechanisme om de functionaliteit van chatberichten uit te breiden en aangepaste informatie toe te voegen voor uw use-case. Wanneer u bijvoorbeeld een bestandskoppeling in het bericht deelt, wilt u misschien metagegevens toevoegenhasAttachment:true
, zodat de toepassing van de geadresseerde deze kan parseren en dienovereenkomstig kan weergeven.
Het antwoord sendChatMessageResult
bevat een id
, dit is de unieke ID van het bericht.
Map<String, String> metadata = new HashMap<String, String>();
metadata.put("hasAttachment", "true");
metadata.put("attachmentUrl", "https://contoso.com/files/attachment.docx");
SendChatMessageOptions sendChatMessageOptions = new SendChatMessageOptions()
.setContent("Please take a look at the attachment")
.setType(ChatMessageType.TEXT)
.setSenderDisplayName("Sender Display Name")
.setMetadata(metadata);
SendChatMessageResult sendChatMessageResult = chatThreadClient.sendMessage(sendChatMessageOptions);
String chatMessageId = sendChatMessageResult.getId();
Chatberichten ontvangen van een chat-thread
U kunt chatberichten ophalen door de methode listMessages
op de chat-thread-client op bepaalde intervallen te pollen.
chatThreadClient.listMessages().forEach(message -> {
System.out.printf("Message id is %s.\n", message.getId());
});
listMessages
retourneert de meest recente versie van het bericht, inclusief eventuele bewerkingen of verwijderingen die zijn opgetreden in het bericht met .editMessage()
en .deleteMessage()
. Voor verwijderde berichten retourneert chatMessage.getDeletedOn()
een datum/tijd-waarde die aangeeft wanneer dat bericht is verwijderd. Voor bewerkte berichten retourneert chatMessage.getEditedOn()
een datum/tijd die aangeeft wanneer het bericht is bewerkt. De oorspronkelijke tijd van het maken van het bericht kan worden geopend met chatMessage.getCreatedOn()
en kan worden gebruikt voor het sorteren van de berichten.
Lees hier meer over berichttypen: Berichttypen.
Leesbevestiging verzenden
Gebruik de sendReadReceipt
methode om namens een gebruiker een evenement voor leesbevestiging te plaatsen in een chatthread.
chatMessageId
is de unieke id van het chatbericht dat is gelezen.
String chatMessageId = message.getId();
chatThreadClient.sendReadReceipt(chatMessageId);
Chatdeelnemers vermelden
Gebruik listParticipants
om een verzameling met paginering op te halen die de deelnemers van de chatdraad bevat, geïdentificeerd door chatThreadId.
PagedIterable<ChatParticipant> chatParticipantsResponse = chatThreadClient.listParticipants();
chatParticipantsResponse.forEach(chatParticipant -> {
System.out.printf("Participant id is %s.\n", ((CommunicationUserIdentifier) chatParticipant.getCommunicationIdentifier()).getId());
});
Een gebruiker toevoegen als deelnemer aan de chatthread
Zodra u een chat-thread hebt gemaakt, kunt u gebruikers toevoegen en verwijderen. Door gebruikers toe te voegen, geeft u hen toegang om berichten naar de chatthread te verzenden en andere deelnemers toe te voegen/te verwijderen. U moet beginnen met het ophalen van een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker. Voordat u een methode aanroept addParticipants
, moet u ervoor zorgen dat u een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker hebt verkregen. De gebruiker heeft dat toegangstoken nodig om de chatclient te initialiseren.
Gebruik de addParticipants
methode om deelnemers toe te voegen aan de thread.
-
communicationIdentifier
, vereist, is de CommunicationIdentifier die u hebt gemaakt met behulp van de CommunicationIdentityClient in het token voor gebruikerstoegang. -
displayName
, optioneel, is de weergavenaam voor de threaddeelnemer. -
shareHistoryTime
, optioneel, is het tijdstip waarop de chatgeschiedenis wordt gedeeld met de deelnemer. Als u de geschiedenis wilt delen sinds het begin van de chat-thread, stelt u deze eigenschap in op een willekeurige datum die gelijk is aan of kleiner is dan de aanmaaktijd van de thread. Als u geen geschiedenis wilt delen voordat de deelnemer is toegevoegd, stelt u deze in op de huidige datum. Als u gedeeltelijke geschiedenis wilt delen, stelt u deze in op de vereiste datum.
List<ChatParticipant> participants = new ArrayList<ChatParticipant>();
CommunicationUserIdentifier identity3 = new CommunicationUserIdentifier("<USER_3_ID>");
CommunicationUserIdentifier identity4 = new CommunicationUserIdentifier("<USER_4_ID>");
ChatParticipant thirdThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity3)
.setDisplayName("Display Name 3");
ChatParticipant fourthThreadParticipant = new ChatParticipant()
.setCommunicationIdentifier(identity4)
.setDisplayName("Display Name 4");
participants.add(thirdThreadParticipant);
participants.add(fourthThreadParticipant);
chatThreadClient.addParticipants(participants);
De code uitvoeren
Navigeer naar de map met het pom.xml
bestand en compileer het project met behulp van de volgende mvn
opdracht.
mvn compile
Bouw vervolgens het pakket.
mvn package
Voer de volgende mvn
-opdracht uit om de app uit te voeren.
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Voorbeeldcode
Zoek de voltooide code voor dit artikel in het GitHub-voorbeeld Chat toevoegen aan uw toepassing.
Vereisten
Maak een Azure-account met een actief abonnement. Zie Gratis een account maken voor meer informatie.
Installeer Android Studio, we gebruiken Android Studio om een Android-toepassing te maken en afhankelijkheden te installeren.
Maak een Azure Communication Services-resource. Zie Een Azure Communication Services-resource maken voor meer informatie. U moet uw resource-eindpunt en verbindingsreeks vastleggen voor dit artikel.
Maak twee Communication Services-gebruikers en geef ze een token voor gebruikerstoegang uit. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. In dit artikel maken we een thread met een eerste deelnemer en voegen we vervolgens een tweede deelnemer toe aan de thread. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Inrichten
Een nieuwe Android-toepassing maken
- Open Android Studio en selecteer
Create a new project
. - Selecteer
Empty Activity
in het volgende venster de projectsjabloon. - Voer bij het kiezen van opties de
ChatQuickstart
naam van het project in. - Klik op volgende en kies de map waarin u het project wilt maken.
De bibliotheken installeren
We gebruiken Gradle om de benodigde Communication Services-afhankelijkheden te installeren. Navigeer met de opdrachtregel naar de hoofdmap van het ChatQuickstart
project. Open het bestand build.gradle van de app en voeg de volgende afhankelijkheden toe aan het ChatQuickstart
doel:
implementation 'com.azure.android:azure-communication-common:' + $azureCommunicationCommonVersion
implementation 'com.azure.android:azure-communication-chat:' + $azureCommunicationChatVersion
implementation 'org.slf4j:slf4j-log4j12:1.7.29'
Voor de meest recente versienummers, zie https://search.maven.org/artifact/com.azure.android/azure-communication-common en https://search.maven.org/artifact/com.azure.android/azure-communication-chat.
Metabestanden uitsluiten in verpakkingsopties in root build.gradle
android {
...
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice'
exclude 'META-INF/ASL2.0'
exclude("META-INF/*.md")
exclude("META-INF/*.txt")
exclude("META-INF/*.kotlin_module")
}
}
(Alternatief) Bibliotheken installeren via Maven
Als u de bibliotheek wilt importeren in uw project met behulp van het Maven-buildsysteem , voegt u deze toe aan de sectie van het dependencies
bestand van uw app pom.xml
, waarbij u de artefact-id en de versie opgeeft die u wilt gebruiken:
<dependency>
<groupId>com.azure.android</groupId>
<artifactId>azure-communication-chat</artifactId>
<version><!-- Please refer to https://search.maven.org/artifact/com.azure.android/azure-communication-chat for the latest version --></version>
</dependency>
Een Azure-functie instellen
Zie Azure Function-integratie voor meer informatie. Het is raadzaam om te integreren met Azure Function om hardcoderingstoepassingsparameters te voorkomen.
Toepassingsconstanten instellen
Maak een klasse ApplicationConstants
waarin alle toepassingsconstanten worden opgeslagen:
public class ApplicationConstants {
public static final String SDK_VERSION = "<your_version>";
public final static String SDK_NAME = "azure-communication-com.azure.android.communication.chat";
public final static String APPLICATION_ID = "Chat_Test_App";
public final static String TAG = "[Chat Test App]";
public static CommunicationTokenCredential COMMUNICATION_TOKEN_CREDENTIAL;
}
De tijdelijke aanduidingen instellen
Open het bestand MainActivity.java
en bewerk het. In dit artikel voegen we onze code toe aan MainActivity
en bekijken we de uitvoer in de console. Dit artikel heeft geen betrekking op het bouwen van een gebruikersinterface. Importeer boven aan het bestand de Azure Communication Common
, Azure Communication Chat
en andere systeembibliotheken:
import com.azure.android.communication.chat.*;
import com.azure.android.communication.chat.models.*;
import com.azure.android.communication.common.*;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.jakewharton.threetenabp.AndroidThreeTen;
import java.util.ArrayList;
import java.util.List;
Kopieer de volgende code naar klasse MainActivity
in bestand MainActivity.java
:
private ChatAsyncClient chatAsyncClient;
private void log(String msg) {
Log.i(TAG, msg);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
@Override
protected void onStart() {
super.onStart();
try {
AndroidThreeTen.init(this);
// Initialize application parameters if one of the conditions in '### Initialize Application Parameters' are met.
// <CREATE A CHAT CLIENT>
// <CREATE A CHAT THREAD>
// <CREATE A CHAT THREAD CLIENT>
// <SEND A MESSAGE>
// <RECEIVE CHAT MESSAGES>
// <ADD A USER>
// <LIST USERS>
// <REMOVE A USER>
// <<SEND A TYPING NOTIFICATION>>
// <<SEND A READ RECEIPT>>
// <<LIST READ RECEIPTS>>
} catch (Exception e){
System.out.println("Quickstart failed: " + e.getMessage());
}
}
Toepassingsparameters initialiseren
Notitie
Initialiseren van ApplicationConstants
moet worden toegevoegd aan MainActivity.java
als aan een van de volgende condities wordt voldaan: 1. De functie voor pushmeldingen is NIET ingeschakeld. 2. De versie voor de Azure Communication Chat-bibliotheek voor Android is < 2.0.0. Raadpleeg anders stap 11 in Android-pushmeldingen. Raadpleeg de voorbeeld-APP van de SDK-versie die u gebruikt voor referentie.
ACS_ENDPOINT
, FIRST_USER_ID
en FIRST_USER_ACCESS_TOKEN
worden geretourneerd door het aanroepen van de Azure-functie. Zie Azure Function-integratie voor meer informatie. We gebruiken het antwoord van het aanroepen van Azure Function om de lijst met parameters te initialiseren:
-
ACS_ENDPOINT
: het eindpunt van uw Communication Services-resource. -
FIRST_USER_ID
enSECOND_USER_ID
: geldige Communication Services-gebruikers-id's die zijn gegenereerd door uw Communication Services-resource. -
FIRST_USER_ACCESS_TOKEN
: het Communication Services-toegangstoken voor<FIRST_USER_ID>
.
Codeblok voor het initialiseren van toepassingsparameters door Azure Function aan te roepen:
try {
UserTokenClient userTokenClient = new UserTokenClient(AZURE_FUNCTION_URL);
//First user context
userTokenClient.getNewUserContext();
ACS_ENDPOINT = userTokenClient.getACSEndpoint();
FIRST_USER_ID = userTokenClient.getUserId();
FIRST_USER_ACCESS_TOKEN = userTokenClient.getUserToken();
COMMUNICATION_TOKEN_CREDENTIAL = new CommunicationTokenCredential(FIRST_USER_ACCESS_TOKEN);
//Second user context
userTokenClient.getNewUserContext();
SECOND_USER_ID = userTokenClient.getUserId();
} catch (Throwable throwable) {
//Your handling code
logger.logThrowableAsError(throwable);
}
Een chat-client maken
Vervang de opmerking <CREATE A CHAT CLIENT>
door de volgende code (plaats de importinstructies boven aan het bestand):
import com.azure.android.core.http.policy.UserAgentPolicy;
chatAsyncClient = new ChatClientBuilder()
.endpoint(endpoint)
.credential(new CommunicationTokenCredential(firstUserAccessToken))
.addPolicy(new UserAgentPolicy(APPLICATION_ID, SDK_NAME, sdkVersion))
.buildAsyncClient();
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Chat SDK voor JavaScript.
Name | Beschrijving |
---|---|
ChatClient/ChatAsyncClient | Deze klasse is vereist voor de chat-functionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, te ophalen, te verwijderen en u te abonneren op chat-gebeurtenissen. |
ChatThreadClient/ChatThreadAsyncClient | Deze klasse is vereist voor de functionaliteit van de chat-thread. U verkrijgt een instantie via de ChatClient en gebruikt deze om berichten te verzenden, te ontvangen, bij te werken of te verwijderen, gebruikers toe te voegen, te verwijderen of op te halen, getypte meldingen te verzenden en bevestigingen te lezen. |
Een chat-thread starten
Gebruik onze ChatAsyncClient
om een nieuwe thread te maken met een initiële gebruiker.
Vervang de opmerking <CREATE A CHAT THREAD>
door de volgende code:
// A list of ChatParticipant to start the thread with.
List<ChatParticipant> participants = new ArrayList<>();
// The display name for the thread participant.
String displayName = "initial participant";
participants.add(new ChatParticipant()
.setCommunicationIdentifier(new CommunicationUserIdentifier(firstUserId))
.setDisplayName(displayName));
// The topic for the thread.
final String topic = "General";
// Optional, set a repeat request ID.
final String repeatabilityRequestID = "";
// Options to pass to the create method.
CreateChatThreadOptions createChatThreadOptions = new CreateChatThreadOptions()
.setTopic(topic)
.setParticipants(participants)
.setIdempotencyToken(repeatabilityRequestID);
CreateChatThreadResult createChatThreadResult =
chatAsyncClient.createChatThread(createChatThreadOptions).get();
ChatThreadProperties chatThreadProperties = createChatThreadResult.getChatThreadProperties();
threadId = chatThreadProperties.getId();
Een chat-thread-client ophalen
Nu we een chat-thread hebben gemaakt, moeten we een ChatThreadAsyncClient
verkrijgen om bewerkingen in de thread uit te voeren. Vervang de opmerking <CREATE A CHAT THREAD CLIENT>
door de volgende code:
ChatThreadAsyncClient chatThreadAsyncClient = new ChatThreadClientBuilder()
.endpoint(endpoint)
.credential(new CommunicationTokenCredential(firstUserAccessToken))
.addPolicy(new UserAgentPolicy(APPLICATION_ID, SDK_NAME, sdkVersion))
.chatThreadId(threadId)
.buildAsyncClient();
Een bericht verzenden naar een chat-thread
Verzend nu een bericht naar de chatthread.
Vervang de opmerking <SEND A MESSAGE>
door de volgende code:
// The chat message content, required.
final String content = "Please take a look at the attachment";
// The display name of the sender, if null (i.e. not specified), an empty name will be set.
final String senderDisplayName = "An important person";
// Use metadata optionally to include any additional data you want to send along with the message.
// This field provides a mechanism for developers to extend chat message functionality and add
// custom information for your use case. For example, when sharing a file link in the message, you
// might want to add 'hasAttachment:true' in metadata so that recipient's application can parse
// that and display accordingly.
final Map<String, String> metadata = new HashMap<String, String>();
metadata.put("hasAttachment", "true");
metadata.put("attachmentUrl", "https://contoso.com/files/attachment.docx");
SendChatMessageOptions chatMessageOptions = new SendChatMessageOptions()
.setType(ChatMessageType.TEXT)
.setContent(content)
.setSenderDisplayName(senderDisplayName)
.setMetadata(metadata);
// A string is the response returned from sending a message, it is an id, which is the unique ID
// of the message.
chatMessageId = chatThreadAsyncClient.sendMessage(chatMessageOptions).get().getId();
Chatberichten ontvangen van een chat-thread
Realtime meldingen
Met realtime signalering kunt u zich abonneren op nieuwe inkomende berichten en de huidige berichten in het geheugen dienovereenkomstig bijwerken. Azure Communication Services ondersteunt een lijst met gebeurtenissen waarop u zich kunt abonneren.
Vervang de opmerking <RECEIVE CHAT MESSAGES>
door de volgende code (plaats de importinstructies boven aan het bestand):
// Start real time notification
chatAsyncClient.startRealtimeNotifications(firstUserAccessToken, getApplicationContext());
// Register a listener for chatMessageReceived event
chatAsyncClient.addEventHandler(ChatEventType.CHAT_MESSAGE_RECEIVED, (ChatEvent payload) -> {
ChatMessageReceivedEvent chatMessageReceivedEvent = (ChatMessageReceivedEvent) payload;
// You code to handle chatMessageReceived event
});
Belangrijk
Bekend probleem: wanneer u Android Chat en Calling SDK samen in dezelfde toepassing gebruikt, werkt de functie Chat SDK realtime meldingen niet. Mogelijk krijgt u een probleem met het oplossen van afhankelijkheid.
U kunt de functie voor realtime meldingen uitschakelen door de volgende afhankelijkheidsgegevens toe te voegen aan het bestand van build.gradle
de app en in plaats daarvan de GetMessages-API te peilen om binnenkomende berichten weer te geven aan gebruikers.
implementation ("com.azure.android:azure-communication-chat:1.0.0") {
exclude group: 'com.microsoft', module: 'trouter-client-android'
}
implementation 'com.azure.android:azure-communication-calling:1.0.0'
Houd er rekening mee dat als de toepassing probeert contact op te nemen met de meldings-API met behulp van chatAsyncClient.startRealtimeNotifications()
of chatAsyncClient.addEventHandler()
, er een runtimefout wordt gegenereerd.
Pushmeldingen
Zie Android-pushmeldingen voor meer informatie.
Een gebruiker toevoegen als deelnemer aan de chatthread
Vervang de opmerking <ADD A USER>
door de volgende code:
// The display name for the thread participant.
String secondUserDisplayName = "a new participant";
ChatParticipant participant = new ChatParticipant()
.setCommunicationIdentifier(new CommunicationUserIdentifier(secondUserId))
.setDisplayName(secondUserDisplayName);
chatThreadAsyncClient.addParticipant(participant);
Gebruikers weergeven in een thread
Vervang de <LIST USERS>
opmerking door de volgende code (plaats de importinstructies boven aan het bestand):
import com.azure.android.core.rest.util.paging.PagedAsyncStream;
import com.azure.android.core.util.RequestContext;
// The maximum number of participants to be returned per page, optional.
int maxPageSize = 10;
// Skips participants up to a specified position in response.
int skip = 0;
// Options to pass to the list method.
ListParticipantsOptions listParticipantsOptions = new ListParticipantsOptions()
.setMaxPageSize(maxPageSize)
.setSkip(skip);
PagedAsyncStream<ChatParticipant> participantsPagedAsyncStream =
chatThreadAsyncClient.listParticipants(listParticipantsOptions, RequestContext.NONE);
participantsPagedAsyncStream.forEach(chatParticipant -> {
// You code to handle participant
});
Gebruiker verwijderen uit een chat-thread
Verwijder de tweede gebruiker uit de thread.
Vervang de opmerking <REMOVE A USER>
door de volgende code:
// Using the unique ID of the participant.
chatThreadAsyncClient.removeParticipant(new CommunicationUserIdentifier(secondUserId)).get();
Een typmelding verzenden
Vervang de opmerking <SEND A TYPING NOTIFICATION>
door de volgende code:
chatThreadAsyncClient.sendTypingNotification().get();
Een leesbevestiging verzenden
We verzenden leesbevestiging voor het eerder verzonden bericht.
Vervang de opmerking <SEND A READ RECEIPT>
door de volgende code:
chatThreadAsyncClient.sendReadReceipt(chatMessageId).get();
Leesbevestigingen weergeven
Vervang de opmerking <READ RECEIPTS>
door de volgende code:
// The maximum number of participants to be returned per page, optional.
maxPageSize = 10;
// Skips participants up to a specified position in response.
skip = 0;
// Options to pass to the list method.
ListReadReceiptOptions listReadReceiptOptions = new ListReadReceiptOptions()
.setMaxPageSize(maxPageSize)
.setSkip(skip);
PagedAsyncStream<ChatMessageReadReceipt> readReceiptsPagedAsyncStream =
chatThreadAsyncClient.listReadReceipts(listReadReceiptOptions, RequestContext.NONE);
readReceiptsPagedAsyncStream.forEach(readReceipt -> {
// You code to handle readReceipt
});
De code uitvoeren
Druk in Android Studio op de knop Uitvoeren om het project te bouwen en uit te voeren. In de console kunt u de uitvoer van de code en de loggeruitvoer van de ChatClient bekijken.
Voorbeeldcode
Zoek de voltooide code voor dit artikel in het GitHub-voorbeeld Chat toevoegen aan uw toepassing.
Vereisten
Maak een Azure-account met een actief abonnement. Zie Gratis een account maken voor meer informatie.
Visual Studio installeren
Maak een Azure Communication Services-resource. Zie Een Azure Communication Services-resource maken voor meer informatie. U moet uw resource-eindpunt en verbindingsreeks vastleggen voor dit artikel.
EenToken voor gebruikerstoegang. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Inrichten
Een nieuwe C#-toepassing maken
Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de opdracht dotnet new
om een nieuwe console-app te maken met de naam ChatQuickstart
. Met deze opdracht maakt u een eenvoudig C#-project Hallo wereld met één bronbestand: Program.cs.
dotnet new console -o ChatQuickstart
Wijzig uw map in de zojuist gemaakte app-map en gebruik de opdracht dotnet build
om uw toepassing te compileren.
cd ChatQuickstart
dotnet build
Het pakket installeren
De Azure Communication Chat SDK voor .NET installeren
dotnet add package Azure.Communication.Chat
Objectmodel
De volgende klassen verwerken enkele van de belangrijkste functies van de Azure Communication Services Chat SDK voor C#.
Name | Beschrijving |
---|---|
ChatClient | Deze klasse is vereist voor de chat-functionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, op te halen en te verwijderen. |
ChatThreadClient | Deze klasse is vereist voor de functionaliteit van de chat-thread. U verkrijgt een exemplaar via de ChatClient en gebruikt deze om berichten te verzenden/ontvangen/bij te werken/te verwijderen, deelnemers toe te voegen/te verwijderen/te verwijderen, typmeldingen en leesbevestigingen te verzenden. |
Een chat-client maken
Als u een chatclient wilt maken, gebruikt u uw Communication Services-eindpunt en het toegangstoken dat is gegenereerd als onderdeel van de vereiste stappen. U moet de CommunicationIdentityClient
klasse van de Identity SDK gebruiken om een gebruiker te maken en een token uit te geven dat moet worden doorgegeven aan uw chatclient.
Meer informatie over toegangstokens voor gebruikers.
Dit artikel heeft geen betrekking op het maken van een servicelaag voor het beheren van tokens voor uw chattoepassing, hoewel dit wordt aanbevolen. Zie Chatarchitectuur voor meer informatie.
Kopieer de volgende codefragmenten en plak deze in het Program.cs
bronbestand.
using Azure;
using Azure.Communication;
using Azure.Communication.Chat;
using System;
namespace ChatQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
// Your unique Azure Communication service endpoint
Uri endpoint = new Uri("<replace with your resource endpoint>");
CommunicationTokenCredential communicationTokenCredential = new CommunicationTokenCredential(<Access_Token>);
ChatClient chatClient = new ChatClient(endpoint, communicationTokenCredential);
}
}
}
Een chat-thread starten
Gebruik de createChatThread
methode op de chatClient om een chat-thread te maken
- Gebruik
topic
dit om een onderwerp aan deze chat te geven. U kunt het onderwerp bijwerken nadat u de chatthread hebt gemaakt met behulp van deUpdateTopic
functie. - Gebruik de eigenschap
participants
om een lijst metChatParticipant
-objecten door te geven om aan de chat-thread toe te voegen. HetChatParticipant
-object wordt geïnitialiseerd met eenCommunicationIdentifier
-object.CommunicationIdentifier
kan van het typeCommunicationUserIdentifier
zijn,MicrosoftTeamsUserIdentifier
ofPhoneNumberIdentifier
. Als u bijvoorbeeld eenCommunicationIdentifier
object wilt ophalen, moet u een toegangs-id doorgeven die u hebt gemaakt door de instructies te volgen voor het maken van een gebruiker
Het antwoordobject van de createChatThread
methode bevat de chatThread
details. Om te communiceren met de bewerkingen in de chatthread, zoals het toevoegen van deelnemers, het verzenden van een bericht, het verwijderen van een bericht, enzovoort, moet een chatThreadClient
clientexemplaar worden geïnstantieerd met behulp van de GetChatThreadClient
methode op de ChatClient
client.
var chatParticipant = new ChatParticipant(identifier: new CommunicationUserIdentifier(id: "<Access_ID>"))
{
DisplayName = "UserDisplayName"
};
CreateChatThreadResult createChatThreadResult = await chatClient.CreateChatThreadAsync(topic: "Hello world!", participants: new[] { chatParticipant });
ChatThreadClient chatThreadClient = chatClient.GetChatThreadClient(threadId: createChatThreadResult.ChatThread.Id);
string threadId = chatThreadClient.Id;
Een chat-thread-client ophalen
De methode GetChatThreadClient
retourneert een thread-client voor een thread die al bestaat. U kunt deze gebruiken om bewerkingen uit te voeren op de gemaakte thread: leden toevoegen, bericht verzenden, enzovoort.
threadId
is de unieke id van de bestaande chat-thread.
string threadId = "<THREAD_ID>";
ChatThreadClient chatThreadClient = chatClient.GetChatThreadClient(threadId: threadId);
Alle chatthreads weergeven
Gebruik GetChatThreads
deze functie om alle chatthreads op te halen waarvan de gebruiker deel uitmaakt.
AsyncPageable<ChatThreadItem> chatThreadItems = chatClient.GetChatThreadsAsync();
await foreach (ChatThreadItem chatThreadItem in chatThreadItems)
{
Console.WriteLine($"{ chatThreadItem.Id}");
}
Een bericht verzenden naar een chat-thread
Gebruik SendMessage
dit om een bericht naar een thread te verzenden.
- Gebruik
content
om de inhoud van het bericht op te geven. Verplicht. - Gebruik
type
dit voor het inhoudstype van het bericht, zoals 'Tekst' of 'HTML'. Als dit niet is opgegeven, wordt 'Tekst' ingesteld. - Gebruik
senderDisplayName
om de weergavenaam van de afzender te geven. Als dit niet is opgegeven, wordt een lege tekenreeks ingesteld. - Optioneel: gebruik
metadata
deze optie om andere gegevens op te nemen die u samen met het bericht wilt verzenden. Dit veld biedt ontwikkelaars een mechanisme om de functionaliteit van chatberichten uit te breiden en aangepaste informatie toe te voegen voor uw use-case. Wanneer u bijvoorbeeld een bestandskoppeling in het bericht deelt, kunt u hasAttachment:true toevoegen aan metagegevens, zodat de toepassing van de geadresseerde deze kan parseren en dienovereenkomstig kan weergeven.
SendChatMessageOptions sendChatMessageOptions = new SendChatMessageOptions()
{
Content = "Please take a look at the attachment",
MessageType = ChatMessageType.Text
};
sendChatMessageOptions.Metadata["hasAttachment"] = "true";
sendChatMessageOptions.Metadata["attachmentUrl"] = "https://contoso.com/files/attachment.docx";
SendChatMessageResult sendChatMessageResult = await chatThreadClient.SendMessageAsync(sendChatMessageOptions);
string messageId = sendChatMessageResult.Id;
Chatberichten ontvangen van een chat-thread
U kunt chatberichten ophalen door de methode GetMessages
op de chat-thread-client op bepaalde intervallen te pollen.
AsyncPageable<ChatMessage> allMessages = chatThreadClient.GetMessagesAsync();
await foreach (ChatMessage message in allMessages)
{
Console.WriteLine($"{message.Id}:{message.Content.Message}");
}
GetMessages
maakt gebruik van een optionele DateTimeOffset
-parameter. Als deze offset is opgegeven, ontvangt u berichten die erna zijn ontvangen, bijgewerkt of verwijderd. Berichten die zijn ontvangen vóór de offsettijd, maar daarna bewerkt of verwijderd, worden ook geretourneerd.
GetMessages
retourneert de meest recente versie van het bericht, inclusief eventuele bewerkingen of verwijderingen die zijn opgetreden in het bericht met UpdateMessage
en DeleteMessage
. Voor verwijderde berichten retourneert chatMessage.DeletedOn
een datum/tijd-waarde die aangeeft wanneer dat bericht is verwijderd. Voor bewerkte berichten retourneert chatMessage.EditedOn
een datum/tijd die aangeeft wanneer het bericht is bewerkt. De oorspronkelijke tijd van het maken van het bericht kan worden benaderd met chatMessage.CreatedOn
en kan worden gebruikt voor het sorteren van de berichten.
GetMessages
retourneert verschillende typen berichten. U kunt het type identificeren aan de hand van chatMessage.Type
. De typen zijn:
Text
: Normaal chatbericht verzonden door een threadlid.Html
: Een opgemaakt tekstbericht. Communication Services-gebruikers kunnen momenteel geen RichText-berichten verzenden. Dit berichttype wordt ondersteund voor berichten die worden verzonden van Teams-gebruikers naar Communication Services-gebruikers in Teams Interop-scenario's.TopicUpdated
: Systeembericht dat aangeeft dat het onderwerp wordt bijgewerkt. (alleen-lezen)ParticipantAdded
: Systeembericht dat aangeeft dat een of meer deelnemers worden toegevoegd aan de chat-thread (gelezen).ParticipantRemoved
: Systeembericht dat aangeeft dat een deelnemer wordt verwijderd uit de chat-thread.
Zie Berichttypen voor meer informatie.
Een gebruiker toevoegen als deelnemer aan de chatthread
Zodra u een thread hebt gemaakt, kunt u gebruikers toevoegen en verwijderen. Door gebruikers toe te voegen, geeft u hen toegang om berichten naar de thread te kunnen verzenden en andere deelnemers toe te voegen/te verwijderen. Voordat u aanroept AddParticipants
, moet u ervoor zorgen dat u een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker verkrijgt. De gebruiker heeft dat toegangstoken nodig om de chatclient te initialiseren.
Hiermee AddParticipants
voegt u een of meer deelnemers toe aan de chatthread. Hieronder ziet u de ondersteunde kenmerken voor elke threaddeelnemer:
-
communicationUser
, vereist, is de identiteit van de threaddeelnemer. -
displayName
, optioneel, is de weergavenaam voor de threaddeelnemer. -
shareHistoryTime
, optioneel, tijd vanaf waaruit de chatgeschiedenis wordt gedeeld met de deelnemer.
var josh = new CommunicationUserIdentifier(id: "<Access_ID_For_Josh>");
var gloria = new CommunicationUserIdentifier(id: "<Access_ID_For_Gloria>");
var amy = new CommunicationUserIdentifier(id: "<Access_ID_For_Amy>");
var participants = new[]
{
new ChatParticipant(josh) { DisplayName = "Josh" },
new ChatParticipant(gloria) { DisplayName = "Gloria" },
new ChatParticipant(amy) { DisplayName = "Amy" }
};
await chatThreadClient.AddParticipantsAsync(participants: participants);
Threaddeelnemers ophalen
Gebruik GetParticipants
om de deelnemers aan de chatthread op te halen.
AsyncPageable<ChatParticipant> allParticipants = chatThreadClient.GetParticipantsAsync();
await foreach (ChatParticipant participant in allParticipants)
{
Console.WriteLine($"{((CommunicationUserIdentifier)participant.User).Id}:{participant.DisplayName}:{participant.ShareHistoryTime}");
}
Leesbevestiging verzenden
Gebruik SendReadReceipt
dit om andere deelnemers op de hoogte te stellen dat de gebruiker het bericht heeft gelezen.
await chatThreadClient.SendReadReceiptAsync(messageId: messageId);
De code uitvoeren
Voer de toepassing uit vanuit uw toepassingsmap met de opdracht dotnet run
.
dotnet run
Voorbeeldcode
Zoek de voltooide code voor dit artikel in het GitHub-voorbeeld Chat toevoegen aan uw toepassing.
Vereisten
Maak een Azure-account met een actief abonnement. Zie Gratis een account maken voor meer informatie.
Installeer Xcode en CocoaPods. U gebruikt Xcode om een iOS-toepassing voor dit artikel te maken en CocoaPods om afhankelijkheden te installeren.
Maak een Azure Communication Services-resource. Zie de quickstart: Communication Services-resources maken en beheren voor meer informatie. U moet uw resource-eindpunt en verbindingsreeks vastleggen voor dit artikel.
Maak twee gebruikers in Azure Communication Services en geef ze een token voor gebruikerstoegang. Zorg ervoor dat u het bereik instelt op chatten en noteer de tokentekenreeks en de user_id tekenreeks. In dit artikel maakt u een thread met een eerste deelnemer en voegt u vervolgens een tweede deelnemer toe aan de thread. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken.
az communication identity token issue --scope chat --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Inrichten
Een nieuwe iOS-toepassing maken
Open Xcode en selecteer Een nieuw Xcode-project maken. Selecteer vervolgens iOS als het platform en de app voor de sjabloon.
Voer ChatQuickstart in als projectnaam. Selecteer vervolgens Storyboard als de interface, UIKit App Delegate als de levenscyclus en Swift als taal.
Selecteer Volgende en kies de map waarin u het project wilt maken.
De bibliotheken installeren
Gebruik CocoaPods om de benodigde Communication Services-afhankelijkheden te installeren.
Ga in de terminal naar de hoofdmap van het ChatQuickstart
iOS-project. Maak een Podfile met de volgende opdracht: pod init
.
Open het Podfile en voeg de volgende afhankelijkheden toe aan het ChatQuickstart
doel:
pod 'AzureCommunicationChat', '~> 1.3.6'
Installeer de afhankelijkheden met de volgende opdracht: pod install
Hiermee maakt u ook een Xcode-werkruimte.
Nadat het project is uitgevoerd pod install
, opent u het project opnieuw in Xcode door het zojuist gemaakte .xcworkspace
project te selecteren.
De plaatsaanduidingen instellen
Open de werkruimte ChatQuickstart.xcworkspace
in Xcode en open ViewController.swift
.
In dit artikel voegt u uw code toe aan viewController
en bekijkt u de uitvoer in de Xcode-console. Dit artikel heeft geen betrekking op het bouwen van een gebruikersinterface in iOS.
Importeer bovenaan viewController.swift
de AzureCommunication
en AzureCommunicationChat
bibliotheken.
import AzureCommunicationCommon
import AzureCommunicationChat
Kopieer de volgende code naar de viewDidLoad()
methode van ViewController
:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let semaphore = DispatchSemaphore(value: 0)
DispatchQueue.global(qos: .background).async {
do {
// <CREATE A CHAT CLIENT>
// <CREATE A CHAT THREAD>
// <LIST ALL CHAT THREADS>
// <GET A CHAT THREAD CLIENT>
// <SEND A MESSAGE>
// <SEND A READ RECEIPT >
// <RECEIVE MESSAGES>
// <ADD A USER>
// <LIST USERS>
} catch {
print("Quickstart failed: \(error.localizedDescription)")
}
}
}
Voor demonstratiedoeleinden gebruiken we een semaphore om uw code te synchroniseren. In de volgende stappen vervangt u de tijdelijke aanduidingen door voorbeeldcode met behulp van de Azure Communication Services Chat-bibliotheek.
Een chat-client maken
Als u een chatclient wilt maken, gebruikt u uw Communication Services-eindpunt en het toegangstoken dat is gegenereerd als onderdeel van de vereiste stappen.
Meer informatie over toegangstokens voor gebruikers.
Dit artikel heeft geen betrekking op het maken van een servicelaag voor het beheren van tokens voor uw chattoepassing, maar we raden het aan. Meer informatie over chatarchitectuur
Vervang de opmerking <CREATE A CHAT CLIENT>
door het volgende codefragment:
let endpoint = "<ACS_RESOURCE_ENDPOINT>"
let credential =
try CommunicationTokenCredential(
token: "<ACCESS_TOKEN>"
)
let options = AzureCommunicationChatClientOptions()
let chatClient = try ChatClient(
endpoint: endpoint,
credential: credential,
withOptions: options
)
Vervang <ACS_RESOURCE_ENDPOINT>
door het eindpunt van uw Azure Communication Services-resource. Vervang <ACCESS_TOKEN>
door een geldig Communication Services-toegangstoken.
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Chat SDK voor iOS.
Name | Beschrijving |
---|---|
ChatClient |
Deze klasse is nodig voor de chatfunctionaliteit. U instantieert deze met uw abonnementsgegevens en gebruikt deze om threads te maken, te ophalen, te verwijderen en u te abonneren op chat-gebeurtenissen. |
ChatThreadClient |
Deze klasse is nodig voor de functionaliteit van de chat-thread. U verkrijgt een exemplaar via ChatClient en gebruikt deze om berichten te verzenden, te ontvangen, bij te werken en te verwijderen. U kunt het ook gebruiken om gebruikers toe te voegen, te verwijderen en te krijgen, typmeldingen en leesbevestigingen te verzenden. |
Een chat-thread starten
CreateChatThreadResult
is de respons die wordt geretourneerd na het aanmaken van een chatthread.
Het bevat een chatThread
eigenschap die het ChatThreadProperties
object is. Dit object bevat de threadId, die kan worden gebruikt om een ChatThreadClient
te verkrijgen voor het uitvoeren van bewerkingen op de gemaakte thread: deelnemers toevoegen, bericht verzenden, enzovoort.
Vervang de opmerking <CREATE A CHAT THREAD>
door het volgende codefragment:
let request = CreateChatThreadRequest(
topic: "Quickstart",
participants: [
ChatParticipant(
id: CommunicationUserIdentifier("<USER_ID>"),
displayName: "Jack"
)
]
)
var threadId: String?
chatClient.create(thread: request) { result, _ in
switch result {
case let .success(result):
threadId = result.chatThread?.id
case .failure:
fatalError("Failed to create thread.")
}
semaphore.signal()
}
semaphore.wait()
Vervang <USER_ID>
door een geldige gebruikers-id van Communication Services.
U gebruikt hier een semafoor om te wachten op de afrondingshandler voordat u verdergaat. Gebruik in latere stappen het threadId
antwoord dat aan de voltooiingshandler is gegeven.
Alle chatthreads weergeven
Nadat u een chat-thread hebt gemaakt, kunnen we alle chatthreads vermelden door de listChatThreads
methode aan te roepen.ChatClient
Vervang de opmerking <LIST ALL CHAT THREADS>
door de volgende code:
chatClient.listThreads { result, _ in
switch result {
case let .success(threads):
guard let chatThreadItems = threads.pageItems else {
print("No threads returned.")
return
}
for chatThreadItem in chatThreadItems {
print("Thread id: \(chatThreadItem.id)")
}
case .failure:
print("Failed to list threads")
}
semaphore.signal()
}
semaphore.wait()
Een chat-thread-client ophalen
De methode createClient
retourneert een ChatThreadClient
voor een thread die al bestaat. Het kan worden gebruikt voor het uitvoeren van bewerkingen op de gemaakte thread: deelnemers toevoegen, bericht verzenden, enzovoort threadId is de unieke id van de bestaande chat-thread.
Vervang de opmerking <GET A CHAT THREAD CLIENT>
door de volgende code:
let chatThreadClient = try chatClient.createClient(forThread: threadId!)
Een bericht verzenden naar een chat-thread
Gebruik de send
methode om een bericht te verzenden naar een thread die wordt geïdentificeerd door threadId.
SendChatMessageRequest
wordt gebruikt om de berichtaanvraag te beschrijven:
- Gebruiken
content
om de inhoud van het chatbericht op te geven - Gebruiken
senderDisplayName
om de weergavenaam van de afzender op te geven - Gebruiken
type
om het berichttype op te geven, zoals 'tekst' of 'html' - Gebruik optioneel
metadata
om eventuele andere gegevens toe te voegen die u samen met het bericht wilt verzenden. Dit veld biedt ontwikkelaars een mechanisme om de functionaliteit van chatberichten uit te breiden en aangepaste informatie toe te voegen voor uw use-case. Wanneer u bijvoorbeeld een bestandskoppeling in het bericht deelt, kunt u hasAttachment:true toevoegen aan metagegevens, zodat de toepassing van de geadresseerde deze kan parseren en dienovereenkomstig kan weergeven.
SendChatMessageResult
is het antwoord dat wordt geretourneerd van het verzenden van een bericht. Het bevat een ID, de unieke ID van het bericht.
Vervang de opmerking <SEND A MESSAGE>
door het volgende codefragment:
let message = SendChatMessageRequest(
content: "Hello!",
senderDisplayName: "Jack",
type: .text,
metadata: [
"hasAttachment": "true",
"attachmentUrl": "https://contoso.com/files/attachment.docx"
]
)
var messageId: String?
chatThreadClient.send(message: message) { result, _ in
switch result {
case let .success(result):
print("Message sent, message id: \(result.id)")
messageId = result.id
case .failure:
print("Failed to send message")
}
semaphore.signal()
}
semaphore.wait()
Een leesbevestiging verzenden
Gebruik de sendReadReceipt
methode om namens een gebruiker een leesbevestiging te plaatsen in een chatgesprek.
messageId
is de unieke id van het chatbericht dat is gelezen.
Vervang de opmerking <SEND A READ RECEIPT>
door de volgende code:
if let id = messageId {
chatThreadClient.sendReadReceipt(forMessage: id) { result, _ in
switch result {
case .success:
print("Read receipt sent")
case .failure:
print("Failed to send read receipt")
}
semaphore.signal()
}
semaphore.wait()
} else {
print("Cannot send read receipt without a message id")
}
Chatberichten ontvangen van een chat-thread
Met realtime signalering kunt u zich abonneren om te luisteren naar nieuwe inkomende berichten en de huidige berichten dienovereenkomstig bij te werken in het geheugen. Azure Communication Services ondersteunt een lijst met gebeurtenissen waarop u zich kunt abonneren.
Vervang de opmerking <RECEIVE MESSAGES>
door de volgende code. Zet meldingen aan en probeer vervolgens nieuwe berichten te verzenden om de ChatMessageReceivedEvents
te zien.
chatClient.startRealTimeNotifications { result in
switch result {
case .success:
print("Real-time notifications started.")
case .failure:
print("Failed to start real-time notifications.")
}
semaphore.signal()
}
semaphore.wait()
chatClient.register(event: .chatMessageReceived, handler: { response in
switch response {
case let .chatMessageReceivedEvent(event):
print("Received a message: \(event.message)")
default:
return
}
})
U kunt chatberichten ook ophalen door de methode listMessages
op opgegeven intervallen te pollen. Zie het volgende codefragment voor listMessages
chatThreadClient.listMessages { result, _ in
switch result {
case let .success(messagesResult):
guard let messages = messagesResult.pageItems else {
print("No messages returned.")
return
}
for message in messages {
print("Received message with id: \(message.id)")
}
case .failure:
print("Failed to receive messages")
}
semaphore.signal()
}
semaphore.wait()
Een gebruiker toevoegen als deelnemer aan de chatthread
Zodra u een thread hebt gemaakt, kunt u gebruikers toevoegen en verwijderen. Door gebruikers toe te voegen, geeft u hen toegang om berichten naar de thread te kunnen verzenden en andere deelnemers toe te voegen/te verwijderen. Voordat u aanroept add
, moet u ervoor zorgen dat u een nieuw toegangstoken en een nieuwe identiteit voor die gebruiker hebt verkregen. De gebruiker heeft het toegangstoken nodig om de chatclient te initialiseren.
Gebruik de add
-methode van ChatThreadClient
om een of meer deelnemers toe te voegen aan de chatdraad. Hieronder ziet u de ondersteunde kenmerken voor elke threaddeelnemer:
-
id
, vereist, is de identiteit van de threaddeelnemer. -
displayName
, optioneel, is de weergavenaam voor de threaddeelnemer. -
shareHistoryTime
, optioneel, tijd vanaf waaruit de chatgeschiedenis wordt gedeeld met de deelnemer.
Vervang de opmerking <ADD A USER>
door de volgende code:
let user = ChatParticipant(
id: CommunicationUserIdentifier("<USER_ID>"),
displayName: "Jane"
)
chatThreadClient.add(participants: [user]) { result, _ in
switch result {
case let .success(result):
if let errors = result.invalidParticipants, !errors.isEmpty {
print("Error adding participant")
} else {
print("Added participant")
}
case .failure:
print("Failed to add the participant")
}
semaphore.signal()
}
semaphore.wait()
Vervang <USER_ID>
door de Communication Services-gebruikers-id van de gebruiker die moet worden toegevoegd.
Gebruikers weergeven in een thread
Gebruik de listParticipants
methode om alle deelnemers op te halen voor een bepaalde chat-thread.
Vervang de opmerking <LIST USERS>
door de volgende code:
chatThreadClient.listParticipants { result, _ in
switch result {
case let .success(participantsResult):
guard let participants = participantsResult.pageItems else {
print("No participants returned.")
return
}
for participant in participants {
let user = participant.id as! CommunicationUserIdentifier
print("User with id: \(user.identifier)")
}
case .failure:
print("Failed to list participants")
}
semaphore.signal()
}
semaphore.wait()
Pushmeldingen
Via pushmeldingen worden clients op de hoogte gesteld van binnenkomende berichten in een chat-thread in situaties waarin de mobiele app niet op de voorgrond wordt uitgevoerd.
Momenteel wordt het verzenden van chatpushmeldingen met Notification Hub ondersteund voor IOS SDK in versie 1.3.0.
Zie Pushmeldingen inschakelen in uw chat-app voor meer informatie.
De code uitvoeren
Druk in Xcode op de knop Uitvoeren om het project te bouwen en uit te voeren. In de console kunt u de uitvoer van de code en de loggeruitvoer van de ChatClient bekijken.
Opmerking: ingesteld Build Settings > Build Options > Enable Bitcode
op No
. Momenteel biedt de AzureCommunicationChat SDK voor iOS geen ondersteuning voor het inschakelen van bitcode. Het volgende GitHub-probleem houdt het probleem bij.
Voorbeeldcode
Zoek de voltooide code voor dit artikel in het GitHub-voorbeeld Chat toevoegen aan uw toepassing.
Vereisten
Een Azure-account met een actief abonnement, of gratis een account maken.
Een actieve Azure Communication Services-resource, of een Communication Services-resource maken.
Een actieve Azure Logic Apps-resource of maak een lege logische app met de trigger die u wilt gebruiken. Momenteel biedt de Communication Services Chat-connector alleen acties, zodat uw logische app minimaal een trigger vereist.
Gebruiker maken
Voer deze stappen uit in Power Automate terwijl uw Power Automate-stroom is geopend in de bewerkingsmodus.
Ga als volgt te werk om een nieuwe stap in uw werkstroom toe te voegen met behulp van de Communication Services Identity-connector:
Selecteer nieuwe stap in de ontwerpfunctie onder de stap waar u de nieuwe actie wilt toevoegen. Als u de nieuwe actie wilt toevoegen tussen stappen, verplaatst u de aanwijzer over de pijl tussen deze stappen, selecteert u het plusteken (+) en selecteert u vervolgens Een actie toevoegen.
In het zoekvak Kies een bewerking voert u Communication Services Identity in. Selecteer Een gebruiker maken in de lijst met acties.
Voer de verbindingsreeks in. Als u de verbindingsreeks-URL in Azure Portal wilt ophalen, gaat u naar de Azure Communication Services-resource. Selecteer sleutels in het resourcemenu en selecteer vervolgens Verbindingsreeks. Selecteer het kopieerpictogram om de verbindingsreeks te kopiëren.
Geef een naam op voor de verbinding.
Selecteer Geavanceerde opties weergeven en selecteer vervolgens het tokenbereik. De actie genereert een toegangstoken en de verlooptijd ervan met het opgegeven bereik. Met deze actie wordt ook een gebruikers-id gegenereerd die een Communication Services-gebruikersidentiteit is.
In Tokenbereikitem selecteer chat.
Selecteer Creëer. De gebruikers-id en een toegangstoken worden weergegeven.
Een chatthread maken
Voeg een nieuwe actie toe.
Voer in het zoekvak Kies een bewerking in, voer Communication Services Chat in. Selecteer Chatthread maken in de lijst met acties.
Voer de URL van het Communication Services-eindpunt in. Als u de eindpunt-URL in Azure Portal wilt ophalen, gaat u naar de Azure Communication Services-resource. Selecteer Sleutels in het resourcemenu en selecteer vervolgens Eindpunt.
Geef een naam op voor de verbinding.
Selecteer het toegangstoken dat is gegenereerd in de vorige sectie en voeg vervolgens een beschrijving van het chatthreadonderwerp toe. Voeg de gemaakte gebruiker toe en voer een naam in voor de deelnemer.
Een bericht verzenden
Voeg een nieuwe actie toe.
Voer in het zoekvak Kies een bewerking in, voer Communication Services Chat in. Selecteer in de lijst met acties de optie Bericht verzenden naar chat-thread.
Voer het toegangstoken, de thread-id, de inhoud en de naam in.
Chatthreadberichten weergeven
Ga als volgende te werk om te controleren of u een bericht correct hebt verzonden:
Voeg een nieuwe actie toe.
Voer in het zoekvak Kies een bewerking in, voer Communication Services Chat in. Selecteer Chatthreadberichten weergeven in de lijst met acties.
Voer het toegangstoken en de thread-id in.
Uw Logic App testen
Als u uw werkstroom handmatig wilt starten, selecteert u Uitvoeren op de werkbalk van de ontwerpfunctie. De werkstroom maakt een gebruiker, geeft een toegangstoken voor die gebruiker uit en verwijdert vervolgens het token en verwijdert de gebruiker. Zie Uw werkstroom uitvoeren voor meer informatie.
Nu Chatthreadberichten weergeven selecteren. Controleer in de uitvoer van de actie op het bericht dat is verzonden.
Werkstroombronnen opschonen
Als u de werkstroom en gerelateerde resources van uw logische app wilt opschonen, raadpleegt u hoe u Logic Apps-resources opschoont.
Middelen opschonen
Om een abonnement op Communicatie Services op te schonen en te verwijderen, kunt u de resource of de resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Voor meer informatie, zie resources opruimen.
Volgende stappen
Dit artikel beschrijft hoe je:
- Een chat-client maken
- Een gesprek met twee gebruikers maken
- Verzend een bericht naar de draad
- Berichten ontvangen van een draad
- Gebruikers verwijderen uit een discussie
Verwante artikelen
- Aan de slag met de UI-bibliotheek.
- Meer informatie over chatconcepten.
- Raak vertrouwd met chat-SDK.
- Chat-SDK gebruiken in uw React Native-toepassing .