簡體   English   中英

如何使用MS bot框架從團隊私人消息中獲取用戶上下文

[英]How to get user context from Teams private message using MS bot framework

我目前正在實施一個Teams機器人,它必須通過個人聊天獲取用戶名(名字和姓氏)以及與機器人通信的用戶的電子郵件地址。

我正在使用bot框架的SDK v4並試圖實現這里提到的方法( https://github.com/OfficeDev/BotBuilder-MicrosoftTeams-dotnet )。 獲取團隊上下文時返回的唯一參數是租戶ID。 頻道和團隊都是空的(我認為這是因為我在私聊?)。

由於我現在擁有Teams上下文中的租戶ID,我如何使用它來檢索用戶的信息?

要檢索Teams上下文,我將調用以下內容:

ITeamsContext teamsContext = turnContext.TurnState.Get<ITeamsContext>();

使用ITeamsContext對象檢索ID后,需要使用這些ID完全填充Teams對象。 您可以使用Operations.FetchTeamDetailsAsync方法執行此操作。

要在對話中獲取成員名單,您將使用GetConversationParametersForCreateOrGetDirectConversation()方法。 #epicmethodname。

using Microsoft.Bot.Builder.Teams;
using Microsoft.Bot.Schema.Teams;
using Microsoft.Bot.Connector.Teams;
...
ConversationList channels = await teamsContext.Operations.FetchChannelListAsync(incomingTeamId);

TeamDetails teamInfo = await teamsContext.Operations.FetchTeamDetailsAsync(incomingTeamId);

var roster = teamsContext.GetConversationParametersForCreateOrGetDirectConversation(turnContext.Activity.From).Members;

List<TeamsChannelAccount> rosterTC = roster.ToList().ConvertAll(member =>
  {
    return teamsContext.AsTeamsChannelAccount(member);
  });

await turnContext.SendActivityAsync($"You have {roster.Count} number of people in this group. You are {from.Name}");

您可以在此處找到一些入門幫助和其他資源: https//developer.microsoft.com/en-us/office/blogs/preview-release-of-net-teams-bot-builder-v4-sdk/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM