【问题标题】:What is Direct Line in Azure?Azure 中的 Direct Line 是什么?
【发布时间】:2022-01-23 08:15:17
【问题描述】:

我开始为 Teams 开发机器人,但我不了解各种渠道产品。我知道我需要将 Microsoft Teams 添加到 Azure 中的频道列表,以便机器人能够通过聊天频道向人们发送消息,但我不知道如何让机器人与托管在 AWS 中的 API 进行通信。也许 Direct Line 是我应该使用的,但文档非常不清楚。这是我能找到的about Direct Line

直线。这是 Direct Line 的标准频道产品。默认情况下,它适用于通过 Azure 门户的机器人模板、来自 Bot Builder 示例的机器人以及使用 Azure CLI 创建的机器人。这是大多数情况下最适合的直线。请参阅将机器人连接到 Direct Line。

如果有的话,我读了之后变得更加困惑。它提出的问题比它回答的要多。如果 Direct Line 应该允许我与第三方 API 进行通信,即使启用它我也不知道如何开始。 BotBuilder repository 文档没有提及 Direct Line 渠道,至少没有以明显的方式提及,因此也没有太大帮助。

尽管我花了一整天的时间阅读它,但我对它的工作原理知之甚少。将机器人部署到可以调用另一个 API 的 Teams 比我预期的要困难得多。我想做的就是说@bot command 并让它调用API 来发出GET 请求。一旦我能够做到这一点,我将能够开发应用程序的其余部分,但是在 Python 中使用 requests 模块不起作用,我不知道为什么。

如果您能提供有关这应该如何工作的任何信息,我们将不胜感激。

【问题讨论】:

  • 我很好奇“在 Python 中使用 requests 模块没有用,我不知道为什么”我不能调用 API 请求?你得到相应的令牌了吗?是单租户应用还是多租户?我需要这些信息,以便我可以尝试为您提供帮助。

标签: azure botframework microsoft-teams


【解决方案1】:

Direct Line,顾名思义,是与 Azure 机器人的直接通信线路。从本质上讲,它是一组 API,可用于在提供的通道集之外与 Azure 机器人进行通信。如果您正在构建一个自定义应用程序,而其他渠道(如网络聊天、团队、电子邮件等)都不适合,那么您可以使用 Direct Line API 通过 REST 向托管机器人发送和接收消息来电。 API reference in the documentation 解释了如何连接和使用 Direct Line。您可以将这些调用实现到您的应用程序中,就像调用任何其他 REST API 一样,并以适合您用例的任何方式显示响应。

这里的关键直觉是 Direct Line 仅用于与机器人通信。它与连接到外部服务无关。与第 3 方服务的通信将以与任何其他应用程序相同的方式完成。我不知道您是如何实现您的应用程序或您连接到什么服务的,但我建议您在尝试将它们实施到机器人之前,使用 Postman 或 curl 仔细检查您对该服务的调用是否在您的机器人之外工作.

您的用例似乎是 Microsoft Teams 渠道,而不是 Direct Line。

【讨论】:

  • 谢谢。这有很大帮助。 Microsoft 文档根本没有解释清楚。
  • 很高兴能帮上忙!下一个文档页面实际上是 The Direct Line is a standard channel over HTTPS protocol to allow communication between a client application and a bot.,但它有点隐藏。
【解决方案2】:

我也不完全清楚 Direct Line 的用途,但据我所知,如果您想在自己的自定义应用程序中包含机器人体验,例如具有“聊天”功能的桌面应用程序.不过,Teams 绝对不需要 - 您只需要 Teams 频道。

关于从您的机器人内部调用 API,本质上您的机器人只是一个标准的网络服务 - 它可以做任何其他类型的网络服务/网络 api 可以做的任何事情,例如。调用第 3 方 API。

【讨论】:

  • 感谢您的回复。这是有道理的。
猜你喜欢
  • 2022-11-02
  • 2020-11-27
  • 1970-01-01
  • 2017-01-26
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
相关资源
最近更新 更多