MS Teams Bot-从短信中删除所有@提及



我正在用MS Teams bot Framework编写一个交互式聊天机器人,并试图从聊天消息中删除所有提及的内容。即。我正在给机器人写的消息(在团队频道内,带有@general提及推送通知(:

"@general@bot你好世界">我的代码只需要没有任何提及的文本消息->";你好世界">

我的代码:

async def on_message_activity(self, turn_context: TurnContext):
user = turn_context.activity.from_property.name
turn_context.remove_recipient_mention(turn_context.activity)        
user_input = turn_context.activity.text.strip() 

我期望";turn_text.remove_recipient_mentation(turn_text.activity("以处理它并从文本消息中删除收件人。

如果我只提到@bot,它会起作用,但如果我在消息中多次提到,它就不起作用。

如何删除聊天信息中的所有提及?

您可以在您发送的链接上查看上面的方法一,它是"remove_mention_text";。这需要每次提及都有一个ID,但如果你查看代码(这里(,它基本上访问TurnContext.get_mentions(activity),所以你实际上可以创建自己的方法,比如remove_all_mentions

不编写自定义remove_all_mentations调用TurnContext.get_mentions(activity),每次调用TurnContext.remove_mention_text(turn_context.activity,mention_id)

async def on_message_activity(self, turn_context: TurnContext):
user = turn_context.activity.from_property.name
mentions = turn_context.get_mentions(turn_context.activity)
if mentions:
for mention in mentions:
mention_id = mention.additional_properties["mentioned"]["id"]
turn_context.remove_mention_text(turn_context.activity,mention_id)

最新更新