为什么 Microsoft Teams 不向我的传出 webhook 发送请求?

Why doesn't Microsoft Teams send a request to my outgoing webhook?

我已经在 Microsoft Teams 中配置了传出 webhook,但是 @mentioning webhook 名称似乎没有向我配置的 url 发送请求。

我有一个简单的 NodeJS 服务器将所有网络请求记录到该端点,并且我已验证 url 是正确的。我什至验证了我可以手动将 HTTP POST 请求发送到我的端点,就像 the outgoing webhook documentation 所说的那样。

如果这可能会影响任何东西,webhook 名称中有空格(我的端点 url 没有)。我的传出 webhook 配置类似于以下内容:

我可能遗漏了什么?

我在外发 webhooks 上关注 this Mircosoft tutorial 并且 运行 遇到了同样的问题,这导致我来到这里。

在重新创建我的 webhook 并多次重新设置 the project 之后,我意识到我的 IDE 根本没有保存我的编辑。根据您的描述,您似乎 运行 遇到了类似的问题。

底线:始终遵循教程的每一步,你应该是好的。

我在使用 Microsoft Learn 模块时遇到了同样的问题,并进行了以下调试;

  1. 确保 ngrok 设置正确。在网络浏览器中打开一个浏览器,指向您在 Teams 中设置的 URL,例如 <a href="https://#########.ngrok.io/api/webhook" rel="nofollow noreferrer">https://#########.ngrok.io/api/webhook</a>

    • 无响应 => 你的 ngrok 设置不正确,检查一下。
    • 响应 => ngrok 代理没问题,请查看服务器命令行的输出。你应该看到类似的东西;
      • GET /api/webhook 404 150 - 10.932 ms
  2. 通过向您在添加到 Teams 时设置的 Webhook 名称发送消息,检查 Teams 是否能够连接到您的端点。所以在 Teams 中输入 @WebHookName some message to process。你得到了什么;

    • 是 - 快速响应(少于 5 秒),但什么都没有 - 您没有与您设置的 WebHook 通信。检查您正在使用的 Teams 团队 - 与设置挂钩的位置相同吗?挂钩名称是否正确?
    • 是 - 快速响应(少于 5 秒),但错误 "Sorry, there was a problem..." - 检查服务器的控制台输出。
      1. 您是否看到 POST 请求 - POST /api/webhook 200 1845 - 21.593 ms
        • 否 - 您的代码有问题,Teams 正在通过 ngrok 与 webhook 运行 通信正常您没有从服务器获得有效响应。还要检查您是否已更新代码中的安全令牌 (/.env)
        • 是 - 如果您得到快速响应(少于 5 秒),但控制台没有输出 - 您正在连接到某个东西,而不是服务器,您是 运行。检查 Teams 中的 URL,它指向其他内容。
    • 是 - Teams 响应缓慢并出现错误(超过 5 秒) - 等待更长时间(喝杯咖啡休息 - 10 分钟)并再次检查控制台
      • 您看到一个 POST 请求 - 半慢 - POST /api/webhook 200 1845 - 100.231 ms - 你很好,但是你的钩子回复时间太长了。团队需要在 5 秒内做出响应。少做点。
      • 您看到一个 POST 请求 - POST /api/webhook - - - - ms 意味着您正在访问您的服务器,但它正在超时 - 这就是我遇到的问题,结果我有一个 return message; 而我应该有 res.send(JSON.stringify(message)); 导致了锁定。我需要复习我的 JavaScipt...
      • 控制台输出中没有任何内容 - 如果您什么也没看到,您没有连接到正确的服务器或团队无法与您的服务器通信,请检查 Teams 中的 URL .