Dela via


Förstå identifierartyper

Communication Services SDK:er och REST-API:er använder identifierartypen för att identifiera vem som kommunicerar med vem. Identifierare anger till exempel vem som ska anropas eller vem som har skickat ett chattmeddelande.

Beroende på kontext omsluts identifierare med extra egenskaper, till exempel i ChatParticipant chat-SDK:n eller inuti RemoteParticipant I calling SDK.

I den här artikeln får du lära dig mer om olika typer av identifierare och hur de ser ut mellan programmeringsspråk. Du får också tips om hur du använder dem.

Typen CommunicationIdentifier

Det finns användaridentiteter som du skapar själv och det finns externa identiteter. Microsoft Teams-användare och telefonnummer är externa identiteter som kommer att spelas upp i interop-scenarier. Var och en av dessa olika identitetstyper har en motsvarande identifierare som representerar den. En identifierare är en strukturerad typ som erbjuder typsäkerhet och fungerar bra med redigerarens kodkomplettering.

Kommunikationsanvändare

Gränssnittet CommunicationUserIdentifier representerar en användaridentitet som skapades med Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning

// 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-referens

CommunicationUserIdentifier

Microsoft Teams-användare

Gränssnittet MicrosoftTeamsUserIdentifier representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som oid anspråk i en Microsoft Entra-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och köpt en token.

Grundläggande användning

// 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-referens

MicrosoftTeamsUserIdentifier

Telefonnummer

Gränssnittet PhoneNumberIdentifier representerar ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

// create an identifier
const phoneNumber = { phoneNumber: "+112345556789" };

API-referens

PhoneNumberIdentifier

Microsoft Teams-program

Gränssnittet MicrosoftTeamsAppIdentifier representerar en robot för Teams Voice-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

// 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-referens

MicrosoftTeamsAppIdentifier

Okänt

Gränssnittet UnknownIdentifier finns för framtidssäkert och du kan stöta på det när du har en gammal version av SDK och en ny identifierartyp nyligen har introducerats. Alla okända identifierare från tjänsten kommer att deserialiseras till UnknownIdentifier i SDK: et.

Grundläggande användning

// create an identifier
const unknownId = { id: "a raw id that originated in the service" };

API-referens

UnknownIdentifier

Hantera CommunicationIdentifier basgränssnittet

När du skapar identifierare för en konkret typ som du skickar till SDK:t returnerar SDK:t en CommunicationIdentifierKind, som är en diskriminerad union. Det är enkelt att begränsa till en konkret typ och vi föreslår en switch-case-instruktion med mönstermatchning:

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;
}

Identifierargränssnitten har utformats så att du inte behöver ange kind för att minska verbositeten, och den diskriminerande unionen med kind egenskapen används endast när den returneras från SDK:n. Men om du behöver översätta en identifierare till motsvarande diskriminerande unionstyp kan du använda den här hjälpen:

const identifierKind = getIdentifierKind(identifier); // now you can switch-case on the kind

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

Eftersom azure-communication-common@2.1.0 SDK:et hjälper till med konverteringen:

// get an identifier's raw Id
const rawId = getIdentifierRawId(communicationIdentifier);

// create an identifier from a given raw Id
const identifier = createIdentifierFromRawId(rawId);

Ett ogiltigt rå-ID konverteras bara till en UnknownIdentifier i SDK:t och valideringen sker endast på tjänstsidan.

Kommunikationsanvändare

CommunicationUserIdentifier Representerar en användaridentitet som skapades med hjälp av Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning

// 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-referens

CommunicationUserIdentifier

Microsoft Teams-användare

MicrosoftTeamsUserIdentifier Representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som oid anspråk i en Microsoft Entra-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och köpt en token.

Grundläggande användning

// 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-referens

MicrosoftTeamsUserIdentifier

Telefonnummer

Representerar PhoneNumberIdentifier ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

// create an identifier
var phoneNumber = new PhoneNumberIdentifier("+112345556789");

API-referens

PhoneNumberIdentifier

Microsoft Teams-program

Gränssnittet MicrosoftTeamsAppIdentifier representerar en robot för Teams Voice-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

// 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-referens

MicrosoftTeamsAppIdentifier

Okänt

Finns UnknownIdentifier för framtidssäkrande och du kan stöta på det när du har en gammal version av SDK och en ny identifierartyp nyligen har introducerats. Alla okända identifierare från tjänsten kommer att deserialiseras till UnknownIdentifier i SDK: et.

Grundläggande användning

// create an identifier
var unknown = new UnknownIdentifier("a raw id that originated in the service");

API-referens

UnknownIdentifier

Hantera basklassen CommunicationIdentifier

När du skapar identifierare för en konkret typ som du skickar till SDK:t returnerar SDK:t CommunicationIdentifier protokollet. Det är enkelt att nedgjuta till en konkret typ och vi föreslår en switch-case-instruktion med mönstermatchning:

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;
}

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

Eftersom Azure.Communication.Common 1.2.0 SDK:et hjälper till med konverteringen:

// get an identifier's raw Id
string rawId = communicationIdentifier.RawId;

// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.FromRawId(rawId);

Ett ogiltigt rå-ID konverteras bara till en UnknownIdentifier i SDK:t och valideringen sker endast på tjänstsidan.

Kommunikationsanvändare

CommunicationUserIdentifier Representerar en användaridentitet som skapades med hjälp av Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning

# 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-referens

CommunicationUserIdentifier

Microsoft Teams-användare

MicrosoftTeamsUserIdentifier Representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som oid anspråk i en Microsoft Entra-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och köpt en token.

Grundläggande användning

# 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-referens

MicrosoftTeamsUserIdentifier

Telefonnummer

Representerar PhoneNumberIdentifier ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

# create an identifier
phone_number = PhoneNumberIdentifier("+112345556789")

API-referens

PhoneNumberIdentifier

Microsoft Teams-program

Gränssnittet MicrosoftTeamsAppIdentifier representerar en robot för Teams Voice-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

# 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-referens

MicrosoftTeamsAppIdentifier

Okänt

Finns UnknownIdentifier för framtidssäkrande och du kan stöta på det när du har en gammal version av SDK och en ny identifierartyp nyligen har introducerats. Alla okända identifierare från tjänsten kommer att deserialiseras till UnknownIdentifier i SDK: et.

Grundläggande användning

# create an identifier
unknown = UnknownIdentifier("a raw id that originated in the service")

API-referens

UnknownIdentifier

Hantera basklassen CommunicationIdentifier

När du skapar identifierare för en konkret typ som du skickar till SDK:t returnerar SDK:t CommunicationIdentifier protokollet. Konkreta identifierarklasser är bara Protokollet CommunicationIdentifier tillsammans med en skriven ordlista med namnet properties. Så du kan använda mönstermatchning på protokollets kind instansvariabel för att översätta till den konkreta typen:

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

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

SDK:et hjälper till med konverteringen:

# 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)

Ett ogiltigt rå-ID konverteras bara till en UnknownIdentifier i SDK:t och valideringen sker endast på tjänstsidan.

Kommunikationsanvändare

CommunicationUserIdentifier Representerar en användaridentitet som skapades med hjälp av Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning

// 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-referens

CommunicationUserIdentifier

Microsoft Teams-användare

MicrosoftTeamsUserIdentifier Representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som oid anspråk i en Microsoft Entra-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och köpt en token.

Grundläggande användning

// 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-referens

MicrosoftTeamsUserIdentifier

Telefonnummer

Representerar PhoneNumberIdentifier ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

// create an identifier
var phoneNumber = new PhoneNumberIdentifier("+112345556789");

API-referens

PhoneNumberIdentifier

Microsoft Teams-program

Gränssnittet MicrosoftTeamsAppIdentifier representerar en robot för Teams Voice-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

// 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-referens

MicrosoftTeamsAppIdentifier

Okänt

Finns UnknownIdentifier för framtidssäkrande och du kan stöta på det när du har en gammal version av SDK och en ny identifierartyp nyligen har introducerats. Alla okända identifierare från tjänsten kommer att deserialiseras till UnknownIdentifier i SDK: et.

Grundläggande användning

// create an identifier
var unknown = new UnknownIdentifier("a raw id that originated in the service");

API-referens

UnknownIdentifier

Hantera basklassen CommunicationIdentifier

När du skapar identifierare för en konkret typ som du skickar till SDK:t returnerar SDK:t det abstrakta CommunicationIdentifier. Du kan återställa till en betongtyp:

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("Unkown user: " + ((UnknownIdentifier)communicationIdentifier).getId());
}
else {
    // be careful here whether you want to throw because a new SDK version
        // can introduce new identifier types
}

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

Eftersom azure-communication-common 1.2.0 SDK:et hjälper till med konverteringen:

// get an identifier's raw Id
String rawId = communicationIdentifier.getRawId();

// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.fromRawId(rawId);

Ett ogiltigt rå-ID konverteras bara till en UnknownIdentifier i SDK:t och valideringen sker endast på tjänstsidan.

Kommunikationsanvändare

CommunicationUserIdentifier Representerar en användaridentitet som skapades med hjälp av Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning

// 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-referens

CommunicationUserIdentifier

Microsoft Teams-användare

MicrosoftTeamsUserIdentifier Representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som anspråk i oid en ID-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och skaffat en token.

Grundläggande användning

// 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-referens

MicrosoftTeamsUserIdentifier

Telefonnummer

Representerar PhoneNumberIdentifier ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

// create an identifier
let phoneNumber = PhoneNumberIdentifier(phoneNumber: "+112345556789")

API-referens

PhoneNumberIdentifier

Microsoft Teams-program

Gränssnittet MicrosoftTeamsAppIdentifier representerar en robot för Teams Voice-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

// 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-referens

MicrosoftTeamsAppIdentifier

Okänt

Finns UnknownIdentifier för framtidssäkrande och du kan stöta på det när du har en gammal version av SDK och en ny identifierartyp nyligen har introducerats. Alla okända identifierare från tjänsten kommer att deserialiseras till UnknownIdentifier i SDK: et.

Grundläggande användning

// create an identifier
let unknown = UnknownIdentifier("a raw id that originated in the service")

API-referens

UnknownIdentifier

Hantera basprotokollet CommunicationIdentifier

När du skapar identifierare för en konkret typ som du skickar till SDK:t returnerar SDK:t CommunicationIdentifier protokollet. Det är enkelt att flytta tillbaka till en konkret typ och vi föreslår en switch-case-instruktion med mönstermatchning:

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;
}

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

Eftersom Azure.Communication.Common 1.1.0 SDK:et hjälper till med konverteringen:

Swift

// get an identifier's raw Id
let rawId = communicationIdentifier.rawId;

// create an identifier from a given raw Id
let identifier = createCommunicationIdentifier(fromRawId: rawId);

Ett ogiltigt rå-ID konverteras bara till en UnknownIdentifier i SDK:t och valideringen sker endast på tjänstsidan.

Kommunikationsanvändare

CommunicationUserIdentifier Representerar en användaridentitet som skapades med hjälp av Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning

// 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-referens

CommunicationUserIdentifier

Microsoft Teams-användare

MicrosoftTeamsUserIdentifier Representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som anspråk i oid en ID-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och skaffat en token.

Grundläggande användning

// 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-referens

MicrosoftTeamsUserIdentifier

Telefonnummer

Representerar PhoneNumberIdentifier ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

// create an identifier
PhoneNumberIdentifier phoneNumber = new PhoneNumberIdentifier("+112345556789");

API-referens

PhoneNumberIdentifier

Microsoft Teams-program

Gränssnittet MicrosoftTeamsAppIdentifier representerar en robot för Teams Voice-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

// 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-referens

MicrosoftTeamsAppIdentifier

Okänt

Finns UnknownIdentifier för framtidssäkrande och du kan stöta på det när du har en gammal version av SDK och en ny identifierartyp nyligen har introducerats. Alla okända identifierare från tjänsten kommer att deserialiseras till UnknownIdentifier i SDK: et.

Grundläggande användning

// create an identifier
UnknownIdentifier unknown = new UnknownIdentifier("a raw id that originated in the service");

API-referens

UnknownIdentifier

Hantera basklassen CommunicationIdentifier

När du skapar identifierare för en konkret typ som du skickar till SDK:t returnerar SDK:t det abstrakta CommunicationIdentifier. Du kan återställa till en betongtyp:

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, "Unkown user: " + ((UnknownIdentifier)communicationIdentifier).getId());
}
else {
    // be careful here whether you want to throw because a new SDK version
    // can introduce new identifier types
}

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

Eftersom azure-communication-common 1.1.0 SDK:et hjälper till med konverteringen:

// get an identifier's raw Id
String rawId = communicationIdentifier.getRawId();

// create an identifier from a given raw Id
CommunicationIdentifier identifier = CommunicationIdentifier.fromRawId(rawId);

Ett ogiltigt rå-ID konverteras bara till en UnknownIdentifier i SDK:t och valideringen sker endast på tjänstsidan.

I REST-API:er är identifieraren en polymorf typ: du skapar ett JSON-objekt och en egenskap som mappar till en konkret identifierarundertyp. Av bekvämlighets- och bakåtkompatibilitetsskäl kind är egenskaperna och rawId valfria i begäranden men fylls i i tjänstsvar.

Kommunikationsanvändare

CommunicationUserIdentifierModel Representerar en användaridentitet som skapades med hjälp av Identity SDK eller REST API. Det är den enda identifieraren som används om ditt program inte använder Microsoft Teams-samverkans- eller telefonifunktioner.

Grundläggande användning


// 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"
    }
}

Du hittar ett exempel på en begäran som innehåller en identifierare i Chattens REST-API för att lägga till en deltagare och ett exempel på ett svar med en identifierare under hämta chattmeddelande.

API-referens

CommunicationUserIdentifierModel

Microsoft Teams-användare

MicrosoftTeamsUserIdentifierModel Representerar en Teams-användare med dess Microsoft Entra-användarobjekt-ID. Du kan hämta Microsoft Entra-användarobjekt-ID:t via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK. Du kan också hitta ID:t som oid anspråk i en Microsoft Entra-token eller Microsoft Entra-åtkomsttoken när användaren har loggat in och köpt en token.

Grundläggande användning

// 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-referens

MicrosoftTeamsUserIdentifierModel

Telefonnummer

Representerar PhoneNumberIdentifierModel ett telefonnummer. Tjänsten förutsätter att telefonnummer formateras i E.164-format.

Grundläggande användning

// request
{
    "phoneNumber": {
        "value": "+112345556789"
    }
}

// response
{
    "kind": "phoneNumber",
    "rawId": "4:+112345556789",
    "phoneNumber": {
        "value": "+112345556789"
    }
}

API-referens

PhoneNumberIdentifierModel

Microsoft Teams-program

MicrosoftTeamsAppIdentifierModel Representerar en robot för Teams Röst-program, till exempel Samtalskö och Automatisk dirigering med dess Microsoft Entra-robotobjekt-ID. Teams-programmen ska konfigureras med ett resurskonto. Du kan hämta objekt-ID:t för Microsoft Entra-roboten via Microsoft Graph REST API/users-slutpunkten från id egenskapen i svaret. Mer information om hur du arbetar med Microsoft Graph finns i Graph Explorer och titta på Graph SDK.

Grundläggande användning

// 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-referens

MicrosoftTeamsAppIdentifierModel

Okänt

Om en ny identifierare introduceras i en tjänst nedgraderas den CommunicationIdentifierModel till om du har en gammal API-version.

Grundläggande användning

// request
{
    "rawId": "a raw id that originated in the service"
}

// response
{
    "kind": "unknown",
    "rawId": "a raw id that originated in the service"
}

API-referens

CommunicationIdentifierModel

Hantera CommunicationIdentifierModel svar

De senaste API-versionerna fyller i en kind egenskap som du kan använda för att diskriminera:

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;
}

I äldre API-versioner kind saknas egenskapen och du måste kontrollera om det finns rätt underegenskaper:

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}`);
}

Raw ID-representation

Ibland behöver du serialisera en identifierare till en platt sträng. Om du till exempel vill lagra identifieraren i en databastabell eller om du vill använda den som en URL-parameter.

För det ändamålet har identifierare en annan representation som heter RawId. En identifierare kan alltid översättas till motsvarande rå-ID och ett giltigt raw-ID kan alltid konverteras till en identifierare.

Om du använder Azure SDK hjälper det dig med konverteringen. Om du använder REST-API:et direkt måste du konstruera rå-ID:t manuellt enligt beskrivningen nedan.

Kommunikationsanvändare

Identifierare:

{
    "communicationUser": {
        "id": "[communicationUserId]"
    }
}

Raw-ID:

[communicationUserId]

Det råa ID:t är detsamma som communicationUser.id.

Microsoft Teams-användare

Identifierare:

{
    "microsoftTeamsUser": {
        "userId": "[entraUserId]"
    }
}

Raw-ID:

8:orgid:[entraUserId]

Det råa ID:t är Microsoft Entra-användarobjektets ID prefix med 8:orgid:.

Identifierare:

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

Raw-ID:

8:gcch:[entraUserId]

Det råa ID:t är Microsoft Entra-användarobjektets ID prefix med 8:gcch: eller 8:dod: beroende på molnmiljön.

Identifierare:

{
    "microsoftTeamsUser": {
        "userId": "[visitorUserId]",
        "isAnonymous": true
    }
}

Raw-ID:

8:teamsvisitor:[visitorUserId]

Det råa ID:t är teams besöks-ID prefixet med 8:teamsvisitor:. Teams besöks-ID är ett tillfälligt ID som Teams genererar för att aktivera mötesåtkomst.

Telefonnummer

Identifierare:

{
    "phoneNumber": {
        "value": "+1123455567"
    }
}

Raw-ID:

4:+1123455567

Det råa ID:t är det E.164-formaterade telefonnumret som är prefixet med 4:.

Microsoft Teams-app

Identifierare:

{
    "microsoftTeamsApp": {
        "appId": "[entraUserId]"
    }
}

Raw-ID:

28:orgid:[entraUserId]

Det råa ID:t är programmets Entra-användarobjekt-ID prefixet med 28:orgid:.

Identifierare:

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

Raw-ID:

28:gcch:[entraUserId]

Det råa ID:t är programmets Entra-användarobjekt-ID prefixet med 28:gcch: eller 28:dod: beroende på molnmiljön.

Okänt

Identifierare:

{
    "rawId": "[unknown identifier id]"
}

Raw-ID:

[unknown identifier id]

Om ett raw-ID är ogiltigt misslyckas tjänsten med begäran.

Nästa steg