Sdílet prostřednictvím


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

CommunicationUserIdentifier

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 tokenuMicrosoft 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

MicrosoftTeamsUserIdentifier

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

Telefon NumberIdentifier

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

MicrosoftTeamsAppIdentifier

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

UnknownIdentifier

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í CommunicationIdentifierKinddiskriminovanou 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 "phoneNumber":
         // narrowed to PhoneNumberKind
        console.log(`Phone number: ${communicationIdentifier.phoneNumber}`);
        break;
    case "unknown":
         // narrowed to UnknownIdentifierKind
        console.log(`Unknown: ${communicationIdentifier.id}`);
        break;
    case "microsoftBot":
        // narrowed to MicrosoftBotIdentifier
        console.log(`Microsoft bot: ${communicationIdentifier.botId}`);
        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

CommunicationUserIdentifier

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 tokenuMicrosoft 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

MicrosoftTeamsUserIdentifier

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

Telefon NumberIdentifier

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

MicrosoftTeamsAppIdentifier

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

UnknownIdentifier

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 PhoneNumberIdentifier phoneNumber:
        Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}");
        break;
    case MicrosoftBotIdentifier bot:
        Console.WriteLine($"Microsoft bot: {bot.BotId}");
        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

CommunicationUserIdentifier

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 tokenuMicrosoft 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

MicrosoftTeamsUserIdentifier

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

Telefon NumberIdentifier

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

MicrosoftTeamsAppIdentifier

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

UnknownIdentifier

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.PHONE_NUMBER:
        print(f"Phone number: {communication_identifier.properties['value']}")
    case CommunicationIdentifierKind.MICROSOFT_BOT:
        print(f"Microsoft bot: {communication_identifier.properties['bot_id']}")
    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

CommunicationUserIdentifier

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 tokenuMicrosoft 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

MicrosoftTeamsUserIdentifier

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

Telefon NumberIdentifier

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

MicrosoftTeamsAppIdentifier

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

UnknownIdentifier

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 PhoneNumberIdentifier) {
    System.out.println("Phone number: " + ((PhoneNumberIdentifier)communicationIdentifier).getPhoneNumber());
}
else if (communicationIdentifier instanceof MicrosoftBotIdentifier) {
    Log.i(tag, "Microsoft bot: " + ((MicrosoftBotIdentifier)communicationIdentifier).getBotId());
}
else if (communicationIdentifier instanceof UnknownIdentifier) {
    System.out.println("Unkown 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

CommunicationUserIdentifier

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

MicrosoftTeamsUserIdentifier

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

Telefon NumberIdentifier

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

MicrosoftTeamsAppIdentifier

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

UnknownIdentifier

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 phoneNumber as PhoneNumberIdentifier:
        print(#"Phone number: \(phoneNumber.PhoneNumber)"#)
    case let bot as MicrosoftBotIdentifier:
        print(#"Microsoft bot: \(bot.botId)"#)
    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

CommunicationUserIdentifier

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

MicrosoftTeamsUserIdentifier

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

Telefon NumberIdentifier

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

MicrosoftTeamsAppIdentifier

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

UnknownIdentifier

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 PhoneNumberIdentifier) {
    Log.i(tag, "Phone number: " + ((PhoneNumberIdentifier)communicationIdentifier).getPhoneNumber());
}
else if (communicationIdentifier instanceof MicrosoftBotIdentifier) {
    Log.i(tag, "Microsoft bot: " + ((MicrosoftBotIdentifier)communicationIdentifier).getBotId());
}
else if (communicationIdentifier instanceof UnknownIdentifier) {
    Log.i(tag, "Unkown 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 tokenuMicrosoft 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": "daba101a-91c5-44c9-bb9b-e2a9a790571a"
    }
}

// response
{
    "kind": "microsoftTeamsUser",
    "rawId": "8:orgid:daba101a-91c5-44c9-bb9b-e2a9a790571a",
    "microsoftTeamsUser": {
        "userId": "daba101a-91c5-44c9-bb9b-e2a9a790571a"
    }
}


// if you're not operating in the public cloud, you must also pass the right Cloud type in a request
{
    "microsoftTeamsUser": {
        "userId": "daba101a-91c5-44c9-bb9b-e2a9a790571a",
        "cloud": "gcch"
    }
}

// response
{
    "kind": "microsoftTeamsUser",
    "rawId": "8:gcch:daba101a-91c5-44c9-bb9b-e2a9a790571a",
    "microsoftTeamsUser": {
        "userId": "daba101a-91c5-44c9-bb9b-e2a9a790571a",
        "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

Telefon NumberIdentifierModel

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": "45ab2481-1c1c-4005-be24-0ffb879b1130"
    }
}

// response
{
    "kind": "microsoftTeamsApp",
    "rawId": "28:orgid:45ab2481-1c1c-4005-be24-0ffb879b1130",
    "microsoftTeamsApp": {
        "appId": "45ab2481-1c1c-4005-be24-0ffb879b1130"
    }
}


// if you're not operating in the public cloud, you must also pass the right Cloud type in a request
{
    "microsoftTeamsApp": {
        "appId": "45ab2481-1c1c-4005-be24-0ffb879b1130",
        "cloud": "gcch"
    }
}

// response
{
    "kind": "microsoftTeamsApp",
    "rawId": "28:gcch:45ab2481-1c1c-4005-be24-0ffb879b1130",
    "microsoftTeamsApp": {
        "appId": "45ab2481-1c1c-4005-be24-0ffb879b1130",
        "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

CommunicationIdentifierModel

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 "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.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": "[aadUserId]"
    }
}

Nezpracované ID:

8:orgid:[aadUserId]

Nezpracované ID je ID objektu uživatele Microsoft Entra s předponou 8:orgid:.

Identifikátor:

{
    "microsoftTeamsUser": {
        "userId": "[aadUserId]",
        "cloud": "gcch"
    }
}

Nezpracované ID:

8:gcch:[aadUserId]

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:.

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