Id-typen begrijpen
Communication Services-SDK's en REST API's gebruiken het id-type om te bepalen wie met wie communiceert. Id's geven bijvoorbeeld op wie u wilt bellen of wie een chatbericht heeft verzonden.
Afhankelijk van de context worden id's verpakt met extra eigenschappen, zoals in de ChatParticipant
Chat-SDK of in de RemoteParticipant
Aanroepende SDK.
In dit artikel leert u meer over verschillende typen id's en hoe deze eruitzien in programmeertalen. U krijgt ook tips over het gebruik ervan.
Het type CommunicationIdentifier
Er zijn gebruikersidentiteiten die u zelf maakt en er zijn externe identiteiten. Microsoft Teams-gebruikers en telefoonnummers zijn externe identiteiten die in interop-scenario's kunnen worden afgespeeld. Elk van deze verschillende identiteitstypen heeft een bijbehorende id die deze vertegenwoordigt. Een id is een gestructureerd type dat typeveiligheid biedt en goed werkt met de voltooiing van de code van uw editor.
Communicatiegebruiker
De CommunicationUserIdentifier
interface vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
// at some point you will have created a new user identity in your trusted service
const newUser = await identityClient.createUser();
// and then send newUser.communicationUserId down to your client application
// where you can again create an identifier for the user
const sameUser = { communicationUserId: newUserId };
API-verwijzing
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifier
interface vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een Microsoft Entra-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
// get the Teams user's ID from Graph APIs if only the email is known
const user = await graphClient.api("/users/bob@contoso.com").get();
// create an identifier
const teamsUser = { microsoftTeamsUserId: user.id };
// if you're not operating in the public cloud, you must also pass the right Cloud type.
const gcchTeamsUser = { microsoftTeamsUserId: userId, cloud: "gcch" };
API-verwijzing
Telefoonnummer
De PhoneNumberIdentifier
interface vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
// create an identifier
const phoneNumber = { phoneNumber: "+112345556789" };
API-verwijzing
Microsoft Teams-toepassing
De MicrosoftTeamsAppIdentifier
interface vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
// Get the Microsoft Teams App's ID from Graph APIs
const users = await graphClient.api("/users")
.filter(filterConditions)
.select('displayName,id')
.get();
//Here we assume that you have a function getBotFromUsers that gets the bot from the returned response
const bot = getBotFromUsers(users);
// Create an identifier
const teamsAppIdentifier = { teamsAppId: bot.id };
// If you're not operating in the public cloud, you must also pass the right Cloud type.
const gcchTeamsAppIdentifier = { teamsAppId: id, cloud: "gcch" };
API-verwijzing
Onbekend
De UnknownIdentifier
interface bestaat voor toekomstbestendig maken en u kunt deze tegenkomen wanneer u een oude versie van de SDK gebruikt en er onlangs een nieuw id-type is geïntroduceerd. Een onbekende id van de service wordt gedeserialiseerd naar de UnknownIdentifier
SDK.
Basaal gebruik
// create an identifier
const unknownId = { id: "a raw id that originated in the service" };
API-verwijzing
De basisinterface verwerken CommunicationIdentifier
Terwijl u id's maakt voor een concreet type dat u in de SDK doorgeeft, retourneert de SDK een CommunicationIdentifierKind
, wat een gediscrimineerde samenvoeging is. Het is eenvoudig om te beperken tot een concreet type en we raden een switch-case-instructie aan met patroonkoppeling:
switch (communicationIdentifier.kind)
{
case "communicationUser":
// TypeScript has narrowed communicationIdentifier to be a CommunicationUserKind
console.log(`Communication user: ${communicationIdentifier.communicationUserId}`);
break;
case "microsoftTeamsUser":
// narrowed to MicrosoftTeamsUserKind
console.log(`Teams user: ${communicationIdentifier.microsoftTeamsUserId}`);
break;
case "microsoftTeamsApp":
// narrowed to MicrosoftTeamsAppIdentifier
console.log(`Teams app: ${communicationIdentifier.teamsAppId}`);
break;
case "phoneNumber":
// narrowed to PhoneNumberKind
console.log(`Phone number: ${communicationIdentifier.phoneNumber}`);
break;
case "unknown":
// narrowed to UnknownIdentifierKind
console.log(`Unknown: ${communicationIdentifier.id}`);
break;
default:
// be careful here whether you want to throw because a new SDK version
// can introduce new identifier types
break;
}
De id-interfaces zijn zodanig ontworpen dat u niet hoeft op te geven kind
om de uitgebreidheid te verminderen en de discriminerende samenvoeging met de kind
eigenschap wordt alleen gebruikt wanneer deze wordt geretourneerd door de SDK. Als u echter merkt dat u een id moet vertalen naar het bijbehorende discriminerende samenvoegtype, kunt u deze helper gebruiken:
const identifierKind = getIdentifierKind(identifier); // now you can switch-case on the kind
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
Omdat azure-communication-common@2.1.0
de SDK helpt bij de conversie:
// get an identifier's raw Id
const rawId = getIdentifierRawId(communicationIdentifier);
// create an identifier from a given raw Id
const identifier = createIdentifierFromRawId(rawId);
Een ongeldige onbewerkte id wordt alleen geconverteerd naar een UnknownIdentifier
in de SDK en elke validatie vindt alleen plaats aan de servicezijde.
Communicatiegebruiker
Het CommunicationUserIdentifier
vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
// at some point you will have created a new user identity in your trusted service
CommunicationUserIdentifier newUser = await identityClient.CreateUser();
// and then send newUser.Id down to your client application
// where you can again create an identifier for the user
var sameUser = new CommunicationUserIdentifier(newUserId);
API-verwijzing
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifier
vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een Microsoft Entra-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
// get the Teams user's ID from Graph APIs if only the email is known
var user = await graphClient.Users["bob@contoso.com"]
.Request()
.GetAsync();
// create an identifier
var teamsUser = new MicrosoftTeamsUserIdentifier(user.Id);
// if you're not operating in the public cloud, you must also pass the right Cloud type.
var gcchTeamsUser = new MicrosoftTeamsUserIdentifier(userId: userId, cloud: CommunicationCloudEnvironment.Gcch);
API-verwijzing
Telefoonnummer
Het PhoneNumberIdentifier
vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
// create an identifier
var phoneNumber = new PhoneNumberIdentifier("+112345556789");
API-verwijzing
Microsoft Teams-toepassing
De MicrosoftTeamsAppIdentifier
interface vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
// Get the Microsoft Teams App's ID from Graph APIs
var users = await graphClient.Users.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "displayName","id" };
requestConfiguration.QueryParameters.Filter = filterConditions;
});
// Here we assume that you have a function GetBotFromUsers that gets the bot from the returned response
var bot = GetBotFromUsers(users);
// Create an identifier
var teamsAppIdentifier = new MicrosoftTeamsAppIdentifier(bot.Id);
// If you're not operating in the public cloud, you must also pass the right Cloud type.
var gcchTeamsAppIdentifier = new MicrosoftTeamsAppIdentifier(bot.Id, CommunicationCloudEnvironment.Gcch);
API-verwijzing
Onbekend
Het UnknownIdentifier
bestaat voor toekomstbestendig maken en u kunt deze tegenkomen wanneer u een oude versie van de SDK gebruikt en er onlangs een nieuw id-type is geïntroduceerd. Een onbekende id van de service wordt gedeserialiseerd naar de UnknownIdentifier
SDK.
Basaal gebruik
// create an identifier
var unknown = new UnknownIdentifier("a raw id that originated in the service");
API-verwijzing
De basisklasse afhandelen CommunicationIdentifier
Terwijl u id's maakt voor een concreet type dat u in de SDK doorgeeft, retourneert de SDK het CommunicationIdentifier
protocol. Het is eenvoudig om omlaag te casten naar een betontype en we raden een switch-case-instructie aan met patroonkoppeling:
switch (communicationIdentifier)
{
case CommunicationUserIdentifier communicationUser:
Console.WriteLine($"Communication user: {communicationUser.Id}");
break;
case MicrosoftTeamsUserIdentifier teamsUser:
Console.WriteLine($"Teams user: {teamsUser.UserId}");
break;
case MicrosoftTeamsAppIdentifier teamsApp:
Console.WriteLine($"Teams app: {teamsApp.AppId}");
break;
case PhoneNumberIdentifier phoneNumber:
Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}");
break;
case UnknownIdentifier unknown:
Console.WriteLine($"Unknown: {unknown.Id}");
break;
default:
// be careful here whether you want to throw because a new SDK version
// can introduce new identifier types
break;
}
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
Omdat Azure.Communication.Common 1.2.0
de SDK helpt bij de conversie:
// get an identifier's raw Id
string rawId = communicationIdentifier.RawId;
// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.FromRawId(rawId);
Een ongeldige onbewerkte id wordt alleen geconverteerd naar een UnknownIdentifier
in de SDK en elke validatie vindt alleen plaats aan de servicezijde.
Communicatiegebruiker
Het CommunicationUserIdentifier
vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
# at some point you will have created a new user identity in your trusted service
new_user = identity_client.create_user()
# and then send new_user.properties['id'] down to your client application
# where you can again create an identifier for the user
same_user = CommunicationUserIdentifier(new_user_id)
API-verwijzing
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifier
vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een Microsoft Entra-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
# get the Teams user's ID from Graph APIs if only the email is known
user_id = graph_client.get("/users/bob@contoso.com").json().get("id");
# create an identifier
teams_user = MicrosoftTeamsUserIdentifier(user_id)
# if you're not operating in the public cloud, you must also pass the right Cloud type.
gcch_teams_user = MicrosoftTeamsUserIdentifier(user_id, cloud=CommunicationCloudEnvironment.GCCH)
API-verwijzing
Telefoonnummer
Het PhoneNumberIdentifier
vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
# create an identifier
phone_number = PhoneNumberIdentifier("+112345556789")
API-verwijzing
Microsoft Teams-toepassing
De MicrosoftTeamsAppIdentifier
interface vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
# Get the Microsoft Teams App's ID from Graph APIs
users = graph_client.get("/users").json()
# Here we assume that you have a function get_bot_from_users that gets the bot from the returned response
bot = get_bot_from_users(users);
# Create an identifier
teams_app_identifier = MicrosoftTeamsAppIdentifier(app_id=bot.get("id"))
# If you're not operating in the public cloud, you must also pass the right Cloud type.
gcch_teams_app_identifier = MicrosoftTeamsAppIdentifier(
app_id=bot.get("id"),
cloud=CommunicationCloudEnvironment.GCCH
)
API-verwijzing
Onbekend
Het UnknownIdentifier
bestaat voor toekomstbestendig maken en u kunt deze tegenkomen wanneer u een oude versie van de SDK gebruikt en er onlangs een nieuw id-type is geïntroduceerd. Een onbekende id van de service wordt gedeserialiseerd naar de UnknownIdentifier
SDK.
Basaal gebruik
# create an identifier
unknown = UnknownIdentifier("a raw id that originated in the service")
API-verwijzing
De basisklasse afhandelen CommunicationIdentifier
Terwijl u id's maakt voor een concreet type dat u in de SDK doorgeeft, retourneert de SDK het CommunicationIdentifier
protocol. Concrete id-klassen zijn alleen het CommunicationIdentifier-protocol samen met een getypte woordenlijst met de naam properties
. U kunt dus patroonkoppeling gebruiken voor de exemplaarvariabele van kind
het protocol om te vertalen naar het concrete type:
match communication_identifier.kind:
case CommunicationIdentifierKind.COMMUNICATION_USER:
print(f"Communication user: {communication_identifier.properties['id']}")
case CommunicationIdentifierKind.MICROSOFT_TEAMS_USER:
print(f"Teams user: {communication_identifier.properties['user_id']}")
case CommunicationIdentifierKind.MICROSOFT_TEAMS_APP:
print(f"Teams app: {communication_identifier.properties['app_id']}")
case CommunicationIdentifierKind.PHONE_NUMBER:
print(f"Phone number: {communication_identifier.properties['value']}")
case CommunicationIdentifierKind.UNKNOWN:
print(f"Unknown: {communication_identifier.raw_id}")
case _:
# be careful here whether you want to throw because a new SDK version
# can introduce new identifier types
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
De SDK helpt bij de conversie:
# get an identifier's raw Id
raw_id = communication_identifier.raw_id
# create an identifier from a given raw Id
identifier = identifier_from_raw_id(raw_id)
Een ongeldige onbewerkte id wordt alleen geconverteerd naar een UnknownIdentifier
in de SDK en elke validatie vindt alleen plaats aan de servicezijde.
Communicatiegebruiker
Het CommunicationUserIdentifier
vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
// at some point you will have created a new user identity in your trusted service
CommunicationUserIdentifier newUser = identityClient.CreateUser();
// and then send newUser.getId() down to your client application
// where you can again create an identifier for the user
var sameUser = new CommunicationUserIdentifier(newUserId);
API-verwijzing
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifier
vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een Microsoft Entra-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
// get the Teams user's ID from Graph APIs if only the email is known
var user = graphClient.users("bob@contoso.com")
.buildRequest()
.get();
// create an identifier
var teamsUser = new MicrosoftTeamsUserIdentifier(user.id);
// if you're not operating in the public cloud, you must also set the right Cloud type.
var gcchTeamsUser = new MicrosoftTeamsUserIdentifier(userId).setCloudEnvironment(CommunicationCloudEnvironment.GCCH);
API-verwijzing
Telefoonnummer
Het PhoneNumberIdentifier
vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
// create an identifier
var phoneNumber = new PhoneNumberIdentifier("+112345556789");
API-verwijzing
Microsoft Teams-toepassing
De MicrosoftTeamsAppIdentifier
interface vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
// Get the Microsoft Teams App's ID from Graph APIs
var user = graphClient.users()
.buildRequest()
.filter(filterConditions)
.select("displayName,id")
.get();
//Here we assume that you have a function getBotFromUsers that gets the bot from the returned response
var bot = getBotFromUsers(users);
// Create an identifier
var teamsAppIdentifier = new MicrosoftTeamsAppIdentifier(bot.id);
// If you're not operating in the public cloud, you must also pass the right Cloud type.
var gcchTeamsAppIdentifier = new MicrosoftTeamsAppIdentifier(bot.id, CommunicationCloudEnvironment.GCCH);
API-verwijzing
Onbekend
Het UnknownIdentifier
bestaat voor toekomstbestendig maken en u kunt deze tegenkomen wanneer u een oude versie van de SDK gebruikt en er onlangs een nieuw id-type is geïntroduceerd. Een onbekende id van de service wordt gedeserialiseerd naar de UnknownIdentifier
SDK.
Basaal gebruik
// create an identifier
var unknown = new UnknownIdentifier("a raw id that originated in the service");
API-verwijzing
De basisklasse afhandelen CommunicationIdentifier
Terwijl u id's maakt voor een concreet type dat u in de SDK doorgeeft, retourneert de SDK de abstracteCommunicationIdentifier
. U kunt terug casten naar een betontype:
if (communicationIdentifier instanceof CommunicationUserIdentifier) {
System.out.println("Communication user: " + ((CommunicationUserIdentifier)communicationIdentifier).getId());
}
else if (communicationIdentifier instanceof MicrosoftTeamsUserIdentifier) {
System.out.println("Teams user: " + ((MicrosoftTeamsUserIdentifier)communicationIdentifier).getUserId());
}
else if (communicationIdentifier instanceof MicrosoftTeamsAppIdentifier) {
Log.i(tag, "Teams app: " + (( MicrosoftTeamsAppIdentifier)communicationIdentifier).getAppId());
}
else if (communicationIdentifier instanceof PhoneNumberIdentifier) {
System.out.println("Phone number: " + ((PhoneNumberIdentifier)communicationIdentifier).getPhoneNumber());
}
else if (communicationIdentifier instanceof UnknownIdentifier) {
System.out.println("Unknown user: " + ((UnknownIdentifier)communicationIdentifier).getId());
}
else {
// be careful here whether you want to throw because a new SDK version
// can introduce new identifier types
}
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
Omdat azure-communication-common 1.2.0
de SDK helpt bij de conversie:
// get an identifier's raw Id
String rawId = communicationIdentifier.getRawId();
// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.fromRawId(rawId);
Een ongeldige onbewerkte id wordt alleen geconverteerd naar een UnknownIdentifier
in de SDK en elke validatie vindt alleen plaats aan de servicezijde.
Communicatiegebruiker
Het CommunicationUserIdentifier
vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
// at some point you will have created a new user identity in your trusted service
// and send the new user id down to your client application
// where you can create an identifier for the user
let user = CommunicationUserIdentifier(newUserId)
API-verwijzing
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifier
vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een id-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
// get the Teams user's ID if only the email is known, assuming a helper method for the Graph API
let userId = await getUserIdFromGraph("bob@contoso.com")
// create an identifier
let teamsUser = MicrosoftTeamsUserIdentifier(userId: userId)
// if you're not operating in the public cloud, you must also pass the right Cloud type.
let gcchTeamsUser = MicrosoftTeamsUserIdentifier(userId: userId, cloud: CommunicationCloudEnvironment.Gcch)
API-verwijzing
Telefoonnummer
Het PhoneNumberIdentifier
vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
// create an identifier
let phoneNumber = PhoneNumberIdentifier(phoneNumber: "+112345556789")
API-verwijzing
Microsoft Teams-toepassing
De MicrosoftTeamsAppIdentifier
interface vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
// Get the Microsoft Teams App's ID from Graph APIs, assuming a helper method for the Graph API
let botId = await getBotIdFromGraph()
// Create an identifier
let teamsAppIdentifier = MicrosoftTeamsAppIdentifier(appId: botId)
// If you're not operating in the public cloud, you must also pass the right Cloud type.
let gcchTeamsAppIdentifier = MicrosoftTeamsAppIdentifier(appId: botId, cloudEnvironment: CommunicationCloudEnvironment.Gcch)
API-verwijzing
Onbekend
Het UnknownIdentifier
bestaat voor toekomstbestendig maken en u kunt deze tegenkomen wanneer u een oude versie van de SDK gebruikt en er onlangs een nieuw id-type is geïntroduceerd. Een onbekende id van de service wordt gedeserialiseerd naar de UnknownIdentifier
SDK.
Basaal gebruik
// create an identifier
let unknown = UnknownIdentifier("a raw id that originated in the service")
API-verwijzing
Het basisprotocol verwerken CommunicationIdentifier
Terwijl u id's maakt voor een concreet type dat u in de SDK doorgeeft, retourneert de SDK het CommunicationIdentifier
protocol. Het is eenvoudig om terug te casten naar een concreet type en we raden een switch-case-instructie aan met patroonkoppeling:
switch (communicationIdentifier)
{
case let communicationUser as CommunicationUserIdentifier:
print(#"Communication user: \(communicationUser.id)"#)
case let teamsUser as MicrosoftTeamsUserIdentifier:
print(#"Teams user: \(teamsUser.UserId)"#)
case let teamsApp as MicrosoftTeamsAppIdentifier:
print(#"Teams app: \(teamsApp.appId)"#)
case let phoneNumber as PhoneNumberIdentifier:
print(#"Phone number: \(phoneNumber.PhoneNumber)"#)
case let unknown as UnknownIdentifier:
print(#"Unknown: \(unknown.Id)"#)
@unknown default:
// be careful here whether you want to throw because a new SDK version
// can introduce new identifier types
break;
}
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
Omdat Azure.Communication.Common 1.1.0
de SDK helpt bij de conversie:
Swift
// get an identifier's raw Id
let rawId = communicationIdentifier.rawId;
// create an identifier from a given raw Id
let identifier = createCommunicationIdentifier(fromRawId: rawId);
Een ongeldige onbewerkte id wordt alleen geconverteerd naar een UnknownIdentifier
in de SDK en elke validatie vindt alleen plaats aan de servicezijde.
Communicatiegebruiker
Het CommunicationUserIdentifier
vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
// at some point you will have created a new user identity in your trusted service
CommunicationUserIdentifier newUser = identityClient.CreateUser();
// and then send newUser.getId() down to your client application
// where you can again create an identifier for the user
CommunicationUserIdentifier sameUser = new CommunicationUserIdentifier(newUserId);
API-verwijzing
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifier
vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een id-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
// get the Teams user's ID from Graph APIs if only the email is known
User user = graphClient.users("bob@contoso.com")
.buildRequest()
.get();
// create an identifier
MicrosoftTeamsUserIdentifier teamsUser = new MicrosoftTeamsUserIdentifier(user.id);
// if you're not operating in the public cloud, you must also set the right Cloud type.
MicrosoftTeamsUserIdentifier gcchTeamsUser = new MicrosoftTeamsUserIdentifier(userId).setCloudEnvironment(CommunicationCloudEnvironment.GCCH);
API-verwijzing
Telefoonnummer
Het PhoneNumberIdentifier
vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
// create an identifier
PhoneNumberIdentifier phoneNumber = new PhoneNumberIdentifier("+112345556789");
API-verwijzing
Microsoft Teams-toepassing
De MicrosoftTeamsAppIdentifier
interface vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
// Get the Microsoft Teams App's ID from Graph APIs
UserCollectionPage users = graphClient.users()
.buildRequest()
.filter(filterConditions)
.select("displayName,id")
.get();
//Here we assume that you have a function getBotFromUsers that gets the bot from the returned response
User bot = getBotFromUsers(users);
// Create an identifier
MicrosoftTeamsAppIdentifier teamsAppIdentifier = new MicrosoftTeamsAppIdentifier(bot.id);
// If you're not operating in the public cloud, you must also pass the right Cloud type.
MicrosoftTeamsAppIdentifier gcchTeamsAppIdentifier = new MicrosoftTeamsAppIdentifier(bot.id, CommunicationCloudEnvironment.GCCH);
API-verwijzing
Onbekend
Het UnknownIdentifier
bestaat voor toekomstbestendig maken en u kunt deze tegenkomen wanneer u een oude versie van de SDK gebruikt en er onlangs een nieuw id-type is geïntroduceerd. Een onbekende id van de service wordt gedeserialiseerd naar de UnknownIdentifier
SDK.
Basaal gebruik
// create an identifier
UnknownIdentifier unknown = new UnknownIdentifier("a raw id that originated in the service");
API-verwijzing
De basisklasse afhandelen CommunicationIdentifier
Terwijl u id's maakt voor een concreet type dat u in de SDK doorgeeft, retourneert de SDK de abstracteCommunicationIdentifier
. U kunt terug casten naar een betontype:
if (communicationIdentifier instanceof CommunicationUserIdentifier) {
Log.i(tag, "Communication user: " + ((CommunicationUserIdentifier)communicationIdentifier).getId());
}
else if (communicationIdentifier instanceof MicrosoftTeamsUserIdentifier) {
Log.i(tag, "Teams user: " + ((MicrosoftTeamsUserIdentifier)communicationIdentifier).getUserId());
}
else if (communicationIdentifier instanceof MicrosoftTeamsAppIdentifier) {
Log.i(tag, "Teams app: " + (( MicrosoftTeamsAppIdentifier)communicationIdentifier).getAppId());
}
else if (communicationIdentifier instanceof PhoneNumberIdentifier) {
Log.i(tag, "Phone number: " + ((PhoneNumberIdentifier)communicationIdentifier).getPhoneNumber());
}
else if (communicationIdentifier instanceof UnknownIdentifier) {
Log.i(tag, "Unknown user: " + ((UnknownIdentifier)communicationIdentifier).getId());
}
else {
// be careful here whether you want to throw because a new SDK version
// can introduce new identifier types
}
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
Omdat azure-communication-common 1.1.0
de SDK helpt bij de conversie:
// get an identifier's raw Id
String rawId = communicationIdentifier.getRawId();
// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.fromRawId(rawId);
Een ongeldige onbewerkte id wordt alleen geconverteerd naar een UnknownIdentifier
in de SDK en elke validatie vindt alleen plaats aan de servicezijde.
In REST API's is de id een polymorf type: u maakt een JSON-object en een eigenschap die is toegewezen aan een subtype van een concrete id. Om redenen van gemak en compatibiliteit met eerdere versies zijn de kind
en rawId
eigenschappen optioneel in aanvragen, maar worden ze ingevuld in servicereacties.
Communicatiegebruiker
Het CommunicationUserIdentifierModel
vertegenwoordigt een gebruikersidentiteit die is gemaakt met behulp van de Identity SDK of REST API. Dit is de enige id die wordt gebruikt als uw toepassing geen gebruik maakt van microsoft Teams-interoperabiliteits- of telefoniefuncties.
Basaal gebruik
// at some point you will have created a new user identity in your trusted service
// you can specify an identifier with the id of the new user in a request
{
"communicationUser": {
"id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_c94ff260-162d-46d6-94fd-e79f4d213715"
}
}
// the corresponding serialization in a response
{
"kind": "communicationUser",
"rawId": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_c94ff260-162d-46d6-94fd-e79f4d213715",
"communicationUser": {
"id": "8:acs:8540c0de-899f-5cce-acb5-3ec493af3800_c94ff260-162d-46d6-94fd-e79f4d213715"
}
}
U vindt een voorbeeld van een aanvraag met een id in de REST API van Chat voor het toevoegen van een deelnemer en een voorbeeld voor een antwoord met een id onder chatbericht.
API-verwijzing
CommunicationUserIdentifierModel
Microsoft Teams-gebruiker
De MicrosoftTeamsUserIdentifierModel
vertegenwoordigt een Teams-gebruiker met de microsoft Entra-gebruikersobject-id. U kunt de object-id van Microsoft Entra-gebruikers ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK. U kunt de id ook vinden als claim oid
in een Microsoft Entra-token of Microsoft Entra-toegangstoken nadat uw gebruiker zich heeft aangemeld en een token heeft verkregen.
Basaal gebruik
// request
{
"microsoftTeamsUser": {
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
}
}
// response
{
"kind": "microsoftTeamsUser",
"rawId": "8:orgid:00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"microsoftTeamsUser": {
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
}
}
// if you're not operating in the public cloud, you must also pass the right Cloud type in a request
{
"microsoftTeamsUser": {
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"cloud": "gcch"
}
}
// response
{
"kind": "microsoftTeamsUser",
"rawId": "8:gcch:00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"microsoftTeamsUser": {
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"isAnonymous": false,
"cloud": "gcch"
}
}
API-verwijzing
MicrosoftTeamsUserIdentifierModel
Telefoonnummer
Het PhoneNumberIdentifierModel
vertegenwoordigt een telefoonnummer. De service gaat ervan uit dat telefoonnummers zijn opgemaakt in E.164-indeling.
Basaal gebruik
// request
{
"phoneNumber": {
"value": "+112345556789"
}
}
// response
{
"kind": "phoneNumber",
"rawId": "4:+112345556789",
"phoneNumber": {
"value": "+112345556789"
}
}
API-verwijzing
Microsoft Teams-toepassing
Het MicrosoftTeamsAppIdentifierModel
vertegenwoordigt een bot van de Teams Voice-toepassingen zoals Oproepwachtrij en Auto Attendant met de object-id van de Microsoft Entra-bot. De Teams-toepassingen moeten worden geconfigureerd met een resourceaccount. U kunt de object-id van de Microsoft Entra-bot ophalen via de Microsoft Graph REST API/gebruikerseindpunt van de id
eigenschap in het antwoord. Voor meer informatie over het werken met Microsoft Graph, probeert u Graph Explorer en bekijkt u de Graph SDK.
Basaal gebruik
// request
{
"microsoftTeamsApp": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
}
// response
{
"kind": "microsoftTeamsApp",
"rawId": "28:orgid:00001111-aaaa-2222-bbbb-3333cccc4444",
"microsoftTeamsApp": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
}
// if you're not operating in the public cloud, you must also pass the right Cloud type in a request
{
"microsoftTeamsApp": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"cloud": "gcch"
}
}
// response
{
"kind": "microsoftTeamsApp",
"rawId": "28:gcch:00001111-aaaa-2222-bbbb-3333cccc4444",
"microsoftTeamsApp": {
"appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"cloud": "gcch"
}
}
API-verwijzing
MicrosoftTeamsAppIdentifierModel
Onbekend
Als een nieuwe id wordt geïntroduceerd in een service, wordt deze gedowngraded naar de CommunicationIdentifierModel
versie als u een oude API-versie gebruikt.
Basaal gebruik
// request
{
"rawId": "a raw id that originated in the service"
}
// response
{
"kind": "unknown",
"rawId": "a raw id that originated in the service"
}
API-verwijzing
De antwoorden verwerken CommunicationIdentifierModel
Recente API-versies vullen een kind
eigenschap die u kunt gebruiken om onderscheid te maken op:
switch (communicationIdentifier.kind)
{
case "communicationUser":
console.log(`Communication user: ${communicationIdentifier.communicationUser.id}`);
break;
case "microsoftTeamsUser":
console.log(`Teams user: ${communicationIdentifier.microsoftTeamsUser.userId}`);
break;
case "microsoftTeamsApp":
console.log(`Teams user: ${communicationIdentifier.microsoftTeamsApp.appId}`);
break;
case "phoneNumber":
console.log(`Phone number: ${communicationIdentifier.phoneNumber.value}`);
break;
case "unknown":
console.log(`Unknown: ${communicationIdentifier.rawId}`);
break;
default:
// this case should not be hit because adding a new identifier type requires a new API version
// if it does get hit, please file an issue on https://github.com/Azure/azure-rest-api-specs/issues
break;
}
In oudere API-versies ontbreekt de kind
eigenschap en moet u controleren op het bestaan van de juiste subeigenschap:
if (communicationIdentifier.communicationUser) {
console.log(`Communication user: ${communicationIdentifier.communicationUser.id}`);
} else if (communicationIdentifier.microsoftTeamsUser) {
console.log(`Teams user: ${communicationIdentifier.microsoftTeamsUser.userId}`);
} else if (communicationIdentifier.microsoftTeamsApp) {
console.log(`Teams app: ${communicationIdentifier.microsoftTeamsApp.appId}`);
} else if (communicationIdentifier.phoneNumber) {
console.log(`Phone number: ${communicationIdentifier.phoneNumber.value}`);
} else {
console.log(`Unknown: ${communicationIdentifier.rawId}`);
}
Onbewerkte id-weergave
Soms moet u een id serialiseren naar een platte tekenreeks. Als u bijvoorbeeld de id wilt opslaan in een databasetabel of als u deze wilt gebruiken als URL-parameter.
Voor dat doel hebben id's een andere weergave met de naam RawId
. Een id kan altijd worden omgezet in de bijbehorende onbewerkte id en een geldige onbewerkte id kan altijd worden geconverteerd naar een id.
Als u de Azure SDK gebruikt, helpt dit u bij de conversie. Als u de REST API rechtstreeks gebruikt, moet u de onbewerkte id handmatig samenstellen, zoals hieronder wordt beschreven.
Communicatiegebruiker
Id:
{
"communicationUser": {
"id": "[communicationUserId]"
}
}
Onbewerkte id:
[communicationUserId]
De onbewerkte id is hetzelfde als communicationUser.id
.
Microsoft Teams-gebruiker
Id:
{
"microsoftTeamsUser": {
"userId": "[entraUserId]"
}
}
Onbewerkte id:
8:orgid:[entraUserId]
De onbewerkte id is de microsoft Entra-gebruikersobject-id met 8:orgid:
voorvoegsel .
Id:
{
"microsoftTeamsUser": {
"userId": "[entraUserId]",
"cloud": "gcch"
}
}
Onbewerkte id:
8:gcch:[entraUserId]
De onbewerkte id is de microsoft Entra-gebruikersobject-id die is voorafgegaan door 8:gcch:
of 8:dod:
afhankelijk van de cloudomgeving.
Id:
{
"microsoftTeamsUser": {
"userId": "[visitorUserId]",
"isAnonymous": true
}
}
Onbewerkte id:
8:teamsvisitor:[visitorUserId]
De onbewerkte id is de Bezoekers-id van Teams met 8:teamsvisitor:
voorvoegsel . De Bezoekers-id van Teams is een tijdelijke id die Teams genereert om toegang tot vergaderingen mogelijk te maken.
Telefoonnummer
Id:
{
"phoneNumber": {
"value": "+1123455567"
}
}
Onbewerkte id:
4:+1123455567
De onbewerkte id is het E.164 opgemaakte telefoonnummer met voorvoegsel 4:
.
Microsoft Teams-app
Id:
{
"microsoftTeamsApp": {
"appId": "[entraUserId]"
}
}
Onbewerkte id:
28:orgid:[entraUserId]
De onbewerkte id is de Entra-gebruikersobject-id van de toepassing met 28:orgid:
het voorvoegsel .
Id:
{
"microsoftTeamsUser": {
"userId": "[entraUserId]",
"cloud": "gcch"
}
}
Onbewerkte id:
28:gcch:[entraUserId]
De onbewerkte id is de Entra-gebruikersobject-id van de toepassing, voorafgegaan door 28:gcch:
of 28:dod:
afhankelijk van de cloudomgeving.
Onbekend
Id:
{
"rawId": "[unknown identifier id]"
}
Onbewerkte id:
[unknown identifier id]
Als een onbewerkte id ongeldig is, mislukt de service de aanvraag.
Volgende stappen
- Zie Identiteitsmodel voor een inleiding tot communicatie-identiteiten.
- Zie de quickstart voor het maken van identiteiten om snel identiteiten te maken voor testen.
- Zie De interoperabiliteit van Teams voor meer informatie over het gebruik van Communication Services in combinatie met Microsoft Teams.
- Zie Use cases for string identifiers in Communication SDK's voor meer informatie over het gebruik van een onbewerkte id.