[英]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.