簡體   English   中英

如何識別 Microsoft Teams 中 Microsoft Bots Framework 中的提及是否是頻道?

[英]How to identify if a mention in Microsoft Bots Framework in Microsoft Teams is a channel?

在帶有 Microsoft Teams 的 Microsoft Bots Framework 上,我可以輕松獲得提及並存儲它們,以便稍后發送主動消息。 下面的示例顯示了如何根據Microsoft 文檔獲取提及。

this.onMessage(async (turnContext, next) => {
    const mentions = TurnContext.getMentions(turnContext.activity);
    if (mentions){
        const firstMention = mentions[0].mentioned;
        await turnContext.sendActivity(`Hello ${firstMention.name}.`);
    } else {
        await turnContext.sendActivity(`Aw, no one was mentioned.`);
    }

    await next();
});

但是為了發送主動消息,我有兩種不同的消息結構,用於將消息發送給用戶或頻道,因此在發送消息的過程中,我需要知道mentions[0]是否是用戶或渠道。

我查看了文檔和不同的用例,但找不到關於如何做到這一點的答案。

我遇到了類似的事情,正如您所說,我沒有找到一種直接的方法來區分用戶或團隊提及之間的區別,但這就是我使用的方法:

try {
  // Check if mention is a member of a team
  const member = await TeamsInfo.getMember(
    context,
    mention.mentioned.id
  );
} catch (e) {
  try {
    // Or maybe is a team?
     const team = await TeamsInfo.getTeamDetails(
        context,
        mention.mentioned.id
      )
    );
  } catch (e) {
    console.log(e);
  }
}

暫無
暫無

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

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