Principy typů identifikátorů
Sady SDK komunikačních služeb a rozhraní REST API používají typ identifikátoru k identifikaci, s kým komunikuje. Identifikátory například určují, kdo má volat nebo kdo odeslal chatovou zprávu.
V závislosti na kontextu se identifikátory zabalí s dalšími vlastnostmi, například uvnitř ChatParticipant
chatovací sady SDK nebo uvnitř RemoteParticipant
volající sady SDK.
V tomto článku se dozvíte o různých typech identifikátorů a o tom, jak vypadají napříč programovacími jazyky. Získáte také tipy, jak je používat.
Typ CommunicationIdentifier
Existují identity uživatelů, které vytvoříte sami a existují externí identity. Uživatelé a telefonní čísla Microsoft Teams jsou externí identity, které se hrají ve scénářích spolupráce. Každý z těchto různých typů identit má odpovídající identifikátor, který ho představuje. Identifikátor je strukturovaný typ, který nabízí bezpečnost typů a dobře funguje s dokončováním kódu editoru.
Komunikační uživatel
Rozhraní CommunicationUserIdentifier
představuje identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
// 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 };
Reference rozhraní API
Uživatel Microsoft Teams
Rozhraní MicrosoftTeamsUserIdentifier
představuje uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu Microsoft Entra nebo v přístupovém tokenu Microsoft Entra po přihlášení uživatele a získání tokenu.
Základní použití
// 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" };
Reference rozhraní API
Telefonní číslo
Rozhraní PhoneNumberIdentifier
představuje telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
// create an identifier
const phoneNumber = { phoneNumber: "+112345556789" };
Reference rozhraní API
Aplikace Microsoft Teams
Rozhraní MicrosoftTeamsAppIdentifier
představuje robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
// 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" };
Reference rozhraní API
Neznámý
Rozhraní UnknownIdentifier
existuje pro budoucí kontrolu pravopisu a můžete se s ním setkat, když používáte starou verzi sady SDK a nedávno jsme zavedli nový typ identifikátoru. Jakýkoli neznámý identifikátor služby bude deserializován do UnknownIdentifier
sady SDK.
Základní použití
// create an identifier
const unknownId = { id: "a raw id that originated in the service" };
Reference rozhraní API
Zpracování základního CommunicationIdentifier
rozhraní
Zatímco vytváříte identifikátory pro konkrétní typ, který předáváte do sady SDK, sada SDK vrátí CommunicationIdentifierKind
diskriminovanou sjednocení. Je snadné zúžit na konkrétní typ a doporučujeme příkaz switch-case s porovnávání vzorů:
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;
}
Rozhraní identifikátorů byla navržena tak, abyste nemuseli zadávat kind
omezení podrobností a diskriminující sjednocení s kind
vlastností se používá pouze při vrácení ze sady SDK. Pokud ale zjistíte, že potřebujete přeložit identifikátor na odpovídající typ diskriminující sjednocení, můžete použít tohoto pomocníka:
const identifierKind = getIdentifierKind(identifier); // now you can switch-case on the kind
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Vzhledem k tomu, že azure-communication-common@2.1.0
sada SDK pomáhá s převodem:
// get an identifier's raw Id
const rawId = getIdentifierRawId(communicationIdentifier);
// create an identifier from a given raw Id
const identifier = createIdentifierFromRawId(rawId);
Neplatné nezpracované ID se jenom převede na v UnknownIdentifier
sadě SDK a jakékoli ověření proběhne jenom na straně služby.
Komunikační uživatel
Představuje CommunicationUserIdentifier
identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
// 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);
Reference rozhraní API
Uživatel Microsoft Teams
Představuje MicrosoftTeamsUserIdentifier
uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu Microsoft Entra nebo v přístupovém tokenu Microsoft Entra po přihlášení uživatele a získání tokenu.
Základní použití
// 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);
Reference rozhraní API
Telefonní číslo
Představuje PhoneNumberIdentifier
telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
// create an identifier
var phoneNumber = new PhoneNumberIdentifier("+112345556789");
Reference rozhraní API
Aplikace Microsoft Teams
Rozhraní MicrosoftTeamsAppIdentifier
představuje robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
// 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);
Reference rozhraní API
Neznámý
Existuje UnknownIdentifier
pro budoucí kontrolu pravopisu a můžete na ni narazit, když používáte starou verzi sady SDK a nedávno jsme zavedli nový typ identifikátoru. Jakýkoli neznámý identifikátor služby bude deserializován do UnknownIdentifier
sady SDK.
Základní použití
// create an identifier
var unknown = new UnknownIdentifier("a raw id that originated in the service");
Reference rozhraní API
CommunicationIdentifier
Zpracování základní třídy
Zatímco vytváříte identifikátory pro konkrétní typ, který předáváte do sady SDK, sada SDK vrátí CommunicationIdentifier
protokol. Přetypování na konkrétní typ je snadné a doporučujeme příkaz switch-case s odpovídajícími vzory:
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;
}
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Vzhledem k tomu, že Azure.Communication.Common 1.2.0
sada SDK pomáhá s převodem:
// get an identifier's raw Id
string rawId = communicationIdentifier.RawId;
// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.FromRawId(rawId);
Neplatné nezpracované ID se jenom převede na v UnknownIdentifier
sadě SDK a jakékoli ověření proběhne jenom na straně služby.
Komunikační uživatel
Představuje CommunicationUserIdentifier
identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
# 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)
Reference rozhraní API
Uživatel Microsoft Teams
Představuje MicrosoftTeamsUserIdentifier
uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu Microsoft Entra nebo v přístupovém tokenu Microsoft Entra po přihlášení uživatele a získání tokenu.
Základní použití
# 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)
Reference rozhraní API
Telefonní číslo
Představuje PhoneNumberIdentifier
telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
# create an identifier
phone_number = PhoneNumberIdentifier("+112345556789")
Reference rozhraní API
Aplikace Microsoft Teams
Rozhraní MicrosoftTeamsAppIdentifier
představuje robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
# 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
)
Reference rozhraní API
Neznámý
Existuje UnknownIdentifier
pro budoucí kontrolu pravopisu a můžete na ni narazit, když používáte starou verzi sady SDK a nedávno jsme zavedli nový typ identifikátoru. Jakýkoli neznámý identifikátor služby bude deserializován do UnknownIdentifier
sady SDK.
Základní použití
# create an identifier
unknown = UnknownIdentifier("a raw id that originated in the service")
Reference rozhraní API
CommunicationIdentifier
Zpracování základní třídy
Zatímco vytváříte identifikátory pro konkrétní typ, který předáváte do sady SDK, sada SDK vrátí CommunicationIdentifier
protokol. Konkrétní třídy identifikátorů jsou pouze KomunikačníIdentifier protokol spolu s typed slovník s názvem properties
. Proto můžete použít porovnávání vzorů u proměnné instance protokolu kind
k překladu na konkrétní typ:
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
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Sada SDK pomáhá s převodem:
# 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)
Neplatné nezpracované ID se jenom převede na v UnknownIdentifier
sadě SDK a jakékoli ověření proběhne jenom na straně služby.
Komunikační uživatel
Představuje CommunicationUserIdentifier
identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
// 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);
Reference rozhraní API
Uživatel Microsoft Teams
Představuje MicrosoftTeamsUserIdentifier
uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu Microsoft Entra nebo v přístupovém tokenu Microsoft Entra po přihlášení uživatele a získání tokenu.
Základní použití
// 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);
Reference rozhraní API
Telefonní číslo
Představuje PhoneNumberIdentifier
telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
// create an identifier
var phoneNumber = new PhoneNumberIdentifier("+112345556789");
Reference rozhraní API
Aplikace Microsoft Teams
Rozhraní MicrosoftTeamsAppIdentifier
představuje robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
// 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);
Reference rozhraní API
Neznámý
Existuje UnknownIdentifier
pro budoucí kontrolu pravopisu a můžete na ni narazit, když používáte starou verzi sady SDK a nedávno jsme zavedli nový typ identifikátoru. Jakýkoli neznámý identifikátor služby bude deserializován do UnknownIdentifier
sady SDK.
Základní použití
// create an identifier
var unknown = new UnknownIdentifier("a raw id that originated in the service");
Reference rozhraní API
CommunicationIdentifier
Zpracování základní třídy
Zatímco vytváříte identifikátory pro konkrétní typ, který předáváte do sady SDK, sada SDK vrátí abstraktní CommunicationIdentifier
. Můžete přetypovat zpět na konkrétní typ:
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
}
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Vzhledem k tomu, že azure-communication-common 1.2.0
sada SDK pomáhá s převodem:
// get an identifier's raw Id
String rawId = communicationIdentifier.getRawId();
// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.fromRawId(rawId);
Neplatné nezpracované ID se jenom převede na v UnknownIdentifier
sadě SDK a jakékoli ověření proběhne jenom na straně služby.
Komunikační uživatel
Představuje CommunicationUserIdentifier
identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
// 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)
Reference rozhraní API
Uživatel Microsoft Teams
Představuje MicrosoftTeamsUserIdentifier
uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu ID nebo v přístupovém tokenu Microsoft Entra po přihlášení a získání tokenu uživatelem.
Základní použití
// 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)
Reference rozhraní API
Telefonní číslo
Představuje PhoneNumberIdentifier
telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
// create an identifier
let phoneNumber = PhoneNumberIdentifier(phoneNumber: "+112345556789")
Reference rozhraní API
Aplikace Microsoft Teams
Rozhraní MicrosoftTeamsAppIdentifier
představuje robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
// 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)
Reference rozhraní API
Neznámý
Existuje UnknownIdentifier
pro budoucí kontrolu pravopisu a můžete na ni narazit, když používáte starou verzi sady SDK a nedávno jsme zavedli nový typ identifikátoru. Jakýkoli neznámý identifikátor služby bude deserializován do UnknownIdentifier
sady SDK.
Základní použití
// create an identifier
let unknown = UnknownIdentifier("a raw id that originated in the service")
Reference rozhraní API
Zpracování základního CommunicationIdentifier
protokolu
Zatímco vytváříte identifikátory pro konkrétní typ, který předáváte do sady SDK, sada SDK vrátí CommunicationIdentifier
protokol. Přetypování zpět na konkrétní typ je snadné a doporučujeme příkaz switch-case s odpovídajícími vzory:
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;
}
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Vzhledem k tomu, že Azure.Communication.Common 1.1.0
sada SDK pomáhá s převodem:
Swift
// get an identifier's raw Id
let rawId = communicationIdentifier.rawId;
// create an identifier from a given raw Id
let identifier = createCommunicationIdentifier(fromRawId: rawId);
Neplatné nezpracované ID se jenom převede na v UnknownIdentifier
sadě SDK a jakékoli ověření proběhne jenom na straně služby.
Komunikační uživatel
Představuje CommunicationUserIdentifier
identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
// 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);
Reference rozhraní API
Uživatel Microsoft Teams
Představuje MicrosoftTeamsUserIdentifier
uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu ID nebo v přístupovém tokenu Microsoft Entra po přihlášení a získání tokenu uživatelem.
Základní použití
// 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);
Reference rozhraní API
Telefonní číslo
Představuje PhoneNumberIdentifier
telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
// create an identifier
PhoneNumberIdentifier phoneNumber = new PhoneNumberIdentifier("+112345556789");
Reference rozhraní API
Aplikace Microsoft Teams
Rozhraní MicrosoftTeamsAppIdentifier
představuje robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
// 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);
Reference rozhraní API
Neznámý
Existuje UnknownIdentifier
pro budoucí kontrolu pravopisu a můžete na ni narazit, když používáte starou verzi sady SDK a nedávno jsme zavedli nový typ identifikátoru. Jakýkoli neznámý identifikátor služby bude deserializován do UnknownIdentifier
sady SDK.
Základní použití
// create an identifier
UnknownIdentifier unknown = new UnknownIdentifier("a raw id that originated in the service");
Reference rozhraní API
CommunicationIdentifier
Zpracování základní třídy
Zatímco vytváříte identifikátory pro konkrétní typ, který předáváte do sady SDK, sada SDK vrátí abstraktní CommunicationIdentifier
. Můžete přetypovat zpět na konkrétní typ:
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
}
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Vzhledem k tomu, že azure-communication-common 1.1.0
sada SDK pomáhá s převodem:
// get an identifier's raw Id
String rawId = communicationIdentifier.getRawId();
// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.fromRawId(rawId);
Neplatné nezpracované ID se jenom převede na v UnknownIdentifier
sadě SDK a jakékoli ověření proběhne jenom na straně služby.
V rozhraníCH REST API je identifikátor polymorfním typem: vytvoříte objekt JSON a vlastnost, která se mapuje na konkrétní podtyp identifikátoru. Z důvodu usnadnění a zpětné kompatibility jsou vlastnosti rawId
v požadavcích volitelné, kind
ale naplní se odpověďmi služby.
Komunikační uživatel
Představuje CommunicationUserIdentifierModel
identitu uživatele, která byla vytvořena pomocí sady SDK identity nebo rozhraní REST API. Je to jediný identifikátor, který se používá v případě, že vaše aplikace nepoužívá funkce interoperability nebo telefonie Microsoft Teams.
Základní použití
// 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"
}
}
Můžete najít příklad požadavku, který obsahuje identifikátor v rozhraní REST API chatu pro přidání účastníka, a příklad odpovědi s identifikátorem v části Získat chatovací zprávu.
Reference rozhraní API
CommunicationUserIdentifierModel
Uživatel Microsoft Teams
Představuje MicrosoftTeamsUserIdentifierModel
uživatele Teams s ID objektu uživatele Microsoft Entra. ID objektu uživatele Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK. Id můžete také najít jako oid
deklaraci identity v tokenu Microsoft Entra nebo v přístupovém tokenu Microsoft Entra po přihlášení uživatele a získání tokenu.
Základní použití
// 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"
}
}
Reference rozhraní API
MicrosoftTeamsUserIdentifierModel
Telefonní číslo
Představuje PhoneNumberIdentifierModel
telefonní číslo. Služba předpokládá, že telefonní čísla jsou formátovaná ve formátu E.164.
Základní použití
// request
{
"phoneNumber": {
"value": "+112345556789"
}
}
// response
{
"kind": "phoneNumber",
"rawId": "4:+112345556789",
"phoneNumber": {
"value": "+112345556789"
}
}
Reference rozhraní API
Aplikace Microsoft Teams
Představuje MicrosoftTeamsAppIdentifierModel
robota aplikací Teams Voice, jako je fronta volání a automatický telefonický systém s ID objektu robota Microsoft Entra. Aplikace Teams by měly být nakonfigurované s účtem prostředků. ID objektu robota Microsoft Entra můžete načíst prostřednictvím koncového id
bodu rozhraní Microsoft Graph REST API /users z vlastnosti v odpovědi. Další informace o tom, jak pracovat s Microsoft Graphem, najdete v Průzkumníku Graphu a podívejte se do sady Graph SDK.
Základní použití
// 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"
}
}
Reference rozhraní API
MicrosoftTeamsAppIdentifierModel
Neznámý
Pokud se ve službě zavede nový identifikátor, bude se downgradovat na CommunicationIdentifierModel
starší verzi rozhraní API.
Základní použití
// request
{
"rawId": "a raw id that originated in the service"
}
// response
{
"kind": "unknown",
"rawId": "a raw id that originated in the service"
}
Reference rozhraní API
Jak zpracovat CommunicationIdentifierModel
odpovědi
Nedávné verze rozhraní API naplňují kind
vlastnost, kterou můžete použít k diskriminaci:
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;
}
Ve starších verzích kind
rozhraní API chybí vlastnost a musíte zkontrolovat existenci správného dílčího parametru:
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}`);
}
Reprezentace nezpracovaných ID
Někdy potřebujete serializovat identifikátor na plochý řetězec. Pokud například chcete identifikátor uložit do databázové tabulky nebo pokud ho chcete použít jako parametr adresy URL.
Pro tento účel mají identifikátory jinou reprezentaci s názvem RawId
. Identifikátor lze vždy přeložit na odpovídající nezpracované ID a platné nezpracované ID lze vždy převést na identifikátor.
Pokud používáte sadu Azure SDK, pomůže vám s převodem. Pokud rozhraní REST API používáte přímo, musíte ručně vytvořit nezpracované ID, jak je popsáno níže.
Komunikační uživatel
Identifikátor:
{
"communicationUser": {
"id": "[communicationUserId]"
}
}
Nezpracované ID:
[communicationUserId]
Nezpracované ID je stejné jako communicationUser.id
.
Uživatel Microsoft Teams
Identifikátor:
{
"microsoftTeamsUser": {
"userId": "[entraUserId]"
}
}
Nezpracované ID:
8:orgid:[entraUserId]
Nezpracované ID je ID objektu uživatele Microsoft Entra s předponou 8:orgid:
.
Identifikátor:
{
"microsoftTeamsUser": {
"userId": "[entraUserId]",
"cloud": "gcch"
}
}
Nezpracované ID:
8:gcch:[entraUserId]
Nezpracované ID je ID objektu uživatele Microsoft Entra s předponou 8:gcch:
nebo 8:dod:
v závislosti na cloudovém prostředí.
Identifikátor:
{
"microsoftTeamsUser": {
"userId": "[visitorUserId]",
"isAnonymous": true
}
}
Nezpracované ID:
8:teamsvisitor:[visitorUserId]
Nezpracované ID je ID návštěvníka Teams s předponou 8:teamsvisitor:
. ID návštěvníka Teams je dočasné ID, které Teams vygeneruje za účelem povolení přístupu ke schůzce.
Telefonní číslo
Identifikátor:
{
"phoneNumber": {
"value": "+1123455567"
}
}
Nezpracované ID:
4:+1123455567
Nezpracované ID je e.164 formátované telefonní číslo s předponou 4:
.
Aplikace Microsoft Teams
Identifikátor:
{
"microsoftTeamsApp": {
"appId": "[entraUserId]"
}
}
Nezpracované ID:
28:orgid:[entraUserId]
Nezpracované ID je ID objektu uživatele Entra aplikace s předponou 28:orgid:
.
Identifikátor:
{
"microsoftTeamsUser": {
"userId": "[entraUserId]",
"cloud": "gcch"
}
}
Nezpracované ID:
28:gcch:[entraUserId]
Nezpracované ID je ID objektu uživatele Entra aplikace s předponou 28:gcch:
nebo 28:dod:
v závislosti na cloudovém prostředí.
Neznámý
Identifikátor:
{
"rawId": "[unknown identifier id]"
}
Nezpracované ID:
[unknown identifier id]
Pokud je nezpracované ID neplatné, služba požadavek nezdaří.
Další kroky
- Úvod do komunikačních identit najdete v tématu Model identit.
- Informace o rychlém vytváření identit pro testování najdete v rychlém startu pro rychlé vytvoření identity.
- Informace o tom, jak používat komunikační služby společně s Microsoft Teams, najdete v tématu Interoperabilita Teams.
- Informace o použití nezpracovaného ID najdete v tématu Případy použití identifikátorů řetězců v komunikačních sadách SDK.