如何解决如何主动向团队频道发送消息
我似乎不知道如何使用 Python Bot(botframework)主动向 MS 团队频道发送消息。
botframework 不允许您随意发送消息通道,它需要对话参考。您可以通过多种方式获取对话参考,例如有人向机器人发送消息,或获取频道列表并从中构建 conversationId
。
阅读文档
The documentation 会让您相信实际上可以使用以下步骤随意发送消息:
对于第 1 步,如果我的机器人没有添加到频道中的事件,我如何/何时获取频道 ID?
对于第 2 步,如果我不知道有哪些团队频道,我该如何创建对话?
结论
有人知道如何使用 Python 应用程序/机器人向 MS Teams 频道发送消息吗? 它应该不需要用户交互。应用程序/机器人被添加到团队频道,并且它应该立即在此频道内发布一条消息。
解决方法
原来的问题是我的 on_teams_members_added()
没有被调用,因为我一直在 Teams 中删除该应用而不是卸载。
确保:
- 点击团队名称旁边的...溢出菜单
- 选择管理团队
- 选择“应用”标签
- 点击垃圾桶图标从该团队中删除应用
- 然后再次尝试安装该应用
使用此代码,您可以在 Bot 进入频道时发送频道消息:
async def on_teams_members_added( # pylint: disable=unused-argument
self,teams_members_added: [TeamsChannelAccount],team_info: TeamInfo,turn_context: TurnContext,):
for member in teams_members_added:
if member.id == turn_context.activity.recipient.id and team_info is not None:
# bot entered a Teams channel
await turn_context.send_activity("Hello channel! I have just been added.")
您的处理程序需要从 TeamsActivityHandler
继承。
我正在 GitHub 上为 pnp Teams 示例存储库编写示例,我希望在接下来的几天内提交。我还没有开始看文档,但是代码功能齐全,有 C# 和 Node.js 版本的后端,它发送一个非常简单的主动消息示例(显示你需要的最基本的东西) - 希望它可以有用,即使它不在 Python 中 - 参见 https://github.com/HiltonGiesenow/teams-dev-samples/tree/add-proactive-messaging-sample/samples/bot-proactive-messaging/src
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。