C# 使用Bot Framework 4的1对1主动式消息传递

C# 使用Bot Framework 4的1对1主动式消息传递,c#,.net-core,botframework,C#,.net Core,Botframework,我正在使用C.NETCore和BotFrameworkV4开发一个Bot服务。我是Bot框架的初学者 问题陈述如下: 我希望能够在o365 SharePoint上存储一些问题 列表中的订阅。列表的数据结构将具有 包含用户的列,这些用户是 问题 当一个问题被添加到列表中时,我希望我的机器人发送 向Microsoft团队中的目标用户提出的问题。 即使用户不在线,我也希望发送一个 在团队聊天时向用户发出通知,例如Missed 会话 现在,我了解到,在一个非常初级的层面上,这里的关键是使用Bot进行主动

我正在使用C.NETCore和BotFrameworkV4开发一个Bot服务。我是Bot框架的初学者

问题陈述如下:

我希望能够在o365 SharePoint上存储一些问题 列表中的订阅。列表的数据结构将具有 包含用户的列,这些用户是 问题 当一个问题被添加到列表中时,我希望我的机器人发送 向Microsoft团队中的目标用户提出的问题。 即使用户不在线,我也希望发送一个 在团队聊天时向用户发出通知,例如Missed 会话 现在,我了解到,在一个非常初级的层面上,这里的关键是使用Bot进行主动消息传递。我在任何论坛文章中都无法理解或发现的是,我如何编写我的bot以转到SharePoint可以使用轮询或事件驱动并获取信息,然后通过个人1对1团队聊天将获取的数据发送给用户

到目前为止,我所做的是:

我已经编写了SharePoint业务逻辑来获取信息。 bot在从接收到活动时调用此业务逻辑 使用者i、 比如说,一个用户说“嗨”,机器人就去拿东西 来自SharePoint的信息,并将其返回给聊天室中的用户 窗 任何帮助都将不胜感激

干杯


约格什

我的猜测是,你应该能够实现这些目标,但在寻求帮助时,一定要把这些问题分解成更小的问题。您可能还需要在这两个层之间添加一些其他层来完成

正如您所发现的,主动消息将是您希望从bot端向消息用户使用的消息,而无需他们首先参与bot。如果用户以前从未与机器人进行过交互,您将不会发现任何成功,尤其是在团队中,因为机器人需要某种方式才能知道如何与他们联系以前的对话等。请查找更多信息和信息

我在任何论坛文章中都找不到的是,我该怎么做 写入我的bot以转到SharePoint可能使用轮询或事件 驱动并获取信息,然后将获取的数据发送给 个人1对1团队聊天的用户

我已经编写了SharePoint业务逻辑来获取信息。这个 bot在从用户接收活动时调用此业务逻辑。 i、 比如说,一个用户打招呼,机器人就会去获取信息 并在聊天窗口中将其返回给用户

所以,;您缺少的部分似乎是执行轮询之类操作的中间层。它只是使用turn事件,然后“主动”将消息发送给用户。你可能需要有创意。有一些其他的服务/timerjob/serverless功能可以提供帮助

这是一篇针对v3的文章,但关于主动消息的一般概念很好,有助于理解如何以最佳方式处理主动消息范例并确保良好的用户体验:
我能够完成上述任务。首先,我想得太多了,解决办法很简单


我编写了一个无限循环,使用简单的Task.delayms定期异步调用SharePoint,并在发现问题时主动推送问题

至于1对1的消息传递,我正在使用Teams extension for Bot Framework来存储各个频道的信息,并根据上面的轮询功能在私人聊天时向用户发送消息

希望这能为那些希望取得类似成就的人扫清障碍

干杯,
Y

我认为您应该将SharePoint作为您的问题的主题,而不是Bot框架。你说你不知道如何写我的机器人去SharePoint可能是使用轮询或事件驱动和获取信息。您当前的问题主题可能会吸引Bot Framework专家,而不是那些有SharePoint经验的专家。此外,.net上的Bot Framework是一个常规的.net web应用程序,因此您可以加载通常在.net web应用程序中执行的数据。您不知道如何编写我的Bot以转到SharePoint:Microsoft Graph API?我已经了解了从sharepoint获取数据的部分,我想实现bot主动调用获取逻辑的部分。感谢@Dana V,我将查看您提供的源链接,并尝试使用Framework 4实现主动消息传递。抱歉在一篇帖子中提出了太多问题。下次我发帖时,我会尝试将问题陈述分解。将较大的问题陈述分解为较小的部分的建议实际上改进了实现,并使其符合坚实的原则。非常感谢!使用简单任务编写了一个无限循环,定期异步调用SharePoint。延迟毫秒,发现问题时主动推送问题。-只要不需要
不要对您的应用程序资源产生负面影响,那么我很高兴它能工作!对于任何人来说,仍然在寻找实现这一目标的方法。用于触发主动消息传递的用户Microsoft流。尽管无限循环方法很好,但如果轮询配置不当,它可能会极大地影响web服务器资源。