Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Agent kann auf zusätzliche Kontextdaten zum Team oder Chat zugreifen, in dem er installiert ist. Diese Informationen können verwendet werden, um Antworten zu personalisieren und umfangreichere Workflows zu erstellen.
Abrufen der Mitgliederliste oder des Benutzerprofils
Ihr Agent kann die Liste der Mitglieder im aktuellen Team oder Chat abfragen und diese Daten verwenden, um Antworten zu personalisieren oder Folgeaktionen durchzuführen.
Verwenden Sie die Teams SDK-Konversationsmitglieder-API, um Listeninformationen abzurufen.
Für den Abruf von Konversationsmitglieden:
- Minimale Seitengröße:
50 - Standardseitengröße:
200 - Maximale Seitengröße:
500
Verwenden Sie keinen nicht paginierten Memberabruf in Teams und Kanälen. Bei großen Listen können nicht paginierte Aufrufe unvollständig oder gedrosselt sein.
Hinweis
- Paginierung ist in Team- und Kanalunterhaltungen verfügbar.
- Die Paginierung wird in Chatunterhaltungen nicht unterstützt. In Chats wird die vollständige Liste vom Dienst zurückgegeben.
Im folgenden Beispielcode wird der Abruf von ausgelagerten Membern verwendet:
app.OnMessage(async (context, cancellationToken) =>
{
var membersClient = context.Api.Conversations.Members;
var allMembers = new List<TeamsChannelAccount>();
string? continuationToken = null;
do
{
var page = await membersClient.GetPagedAsync(
context.Conversation.Id,
pageSize: 50,
continuationToken: continuationToken,
cancellationToken: cancellationToken
);
allMembers.AddRange(page.Members.Where(m => m is not null).Select(m => m!));
continuationToken = page.ContinuationToken;
}
while (!string.IsNullOrEmpty(continuationToken));
});
app.on("message", async ({ activity, api }) => {
const membersClient = api.conversations.members(activity.conversation.id);
const allMembers = [];
let continuationToken = undefined;
do {
const page = await membersClient.getPaged({
pageSize: 50,
continuationToken,
});
allMembers.push(...page.members);
continuationToken = page.continuationToken;
} while (continuationToken);
});
@app.on_message
async def list_members(ctx: ActivityContext[MessageActivity]) -> None:
members_client = ctx.api.conversations.members(ctx.activity.conversation.id)
all_members = []
continuation_token: str | None = None
while True:
result = await members_client.get_paged(
page_size=50,
continuation_token=continuation_token,
)
all_members.extend(result.members)
if not result.continuation_token:
break
continuation_token = result.continuation_token
Nachdem Sie die Liste abgerufen haben, können Sie Details für ein einzelnes Mitglied abrufen.
Abrufen von Details zu einzelnen Mitgliedern
Sie können Details zu einem bestimmten Element mithilfe von Benutzerbezeichnern aus dem Aktivitätskontext abrufen.
Der folgende Beispielcode verwendet Teams SDK-APIs:
app.OnMessage(async (context, cancellationToken) =>
{
var memberId = context.Activity.From?.Id;
if (string.IsNullOrEmpty(memberId))
{
return;
}
var member = await context.Api.Conversations.Members.GetByIdAsync(
context.Conversation.Id,
memberId,
cancellationToken: cancellationToken
);
});
app.on("message", async ({ activity, api }) => {
const memberId = activity.from?.id;
if (!memberId) {
return;
}
const member = await api.conversations
.member.getById(activity.conversation.id, memberId);
});
@app.on_message
async def get_member(ctx: ActivityContext[MessageActivity]) -> None:
member_id = ctx.activity.from_.id
member = await ctx.api.conversations.member.get_by_id(ctx.activity.conversation.id, member_id)
Nachdem Sie Details für ein Mitglied erhalten haben, können Sie Teamdetails abrufen.
Abrufen von Teamdetails
Bei der Installation in einem Team kann Ihr Agent Metadaten wie Team-ID und Microsoft Entra Gruppen-ID abfragen.
Der folgende Beispielcode verwendet Teams SDK-APIs:
app.OnMessage(async (context, cancellationToken) =>
{
var teamId = context.Activity.ChannelData?.Team?.Id;
if (string.IsNullOrEmpty(teamId))
{
return;
}
var team = await context.Api.Teams.GetByIdAsync(
teamId,
cancellationToken: cancellationToken
);
});
app.on("message", async ({ activity, api }) => {
const teamId = activity.channelData?.team?.id;
if (!teamId) {
return;
}
const team = await api.teams.getById(teamId);
});
@app.on_message
async def get_team_details(ctx: ActivityContext[MessageActivity]) -> None:
team_id = ctx.activity.channel_data.team.id
team = await ctx.api.teams.get_by_id(team_id)
Nachdem Sie Teamdetails erhalten haben, können Sie die Liste der Kanäle in diesem Team abrufen.
Abrufen der Liste der Kanäle in einem Team
Ihr Agent kann die Liste der Kanäle in einem Team abfragen.
Hinweis
- Der Name des Standardkanals "Allgemein" wird als
nullzurückgegeben, um die Lokalisierung zu ermöglichen. - Die Kanal-ID für den Kanal "Allgemein" stimmt immer mit der Team-ID überein.
Der folgende Beispielcode wird verwendet, um die Liste der Kanäle in einem Team abzurufen:
app.OnMessage(async (context, cancellationToken) =>
{
var teamId = context.Activity.ChannelData?.Team?.Id;
if (string.IsNullOrEmpty(teamId))
{
return;
}
var channels = await context.Api.Teams.GetConversationsAsync(
teamId,
cancellationToken: cancellationToken
);
});
app.on("message", async ({ activity, api }) => {
const teamId = activity.channelData?.team?.id;
if (!teamId) {
return;
}
const channels = await api.teams.getConversations(teamId);
});
@app.on_message
async def list_channels(ctx: ActivityContext[MessageActivity]) -> None:
team_id = ctx.activity.channel_data.team.id
channels = await ctx.api.teams.get_conversations(team_id)
Wenn Sie rohe Connector-REST-Endpunkte benötigen, verwenden Sie die Teams SDK-API für die meisten Agent-Szenarien und verwenden Sie REST nur direkt für erweiterte Fälle, die nicht durch SDK-Abstraktionen abgedeckt werden.