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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- En introduktion till kommunikationsidentiteter finns i Identitetsmodell.
- Information om hur du snabbt skapar identiteter för testning finns i snabbstarten för identitetsskapande.
- Information om hur du använder Kommunikationstjänster tillsammans med Microsoft Teams finns i Teams samverkan.
- Information om hur du använder ett raw-ID finns i Användningsfall för strängidentifierare i Kommunikations-SDK:er.