【问题标题】: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
相关资源
最近更新 更多