【问题标题】:How to test Messenger Bots offline? Local webhooks如何离线测试 Messenger Bots?本地网络挂钩
【发布时间】:2016-08-10 11:03:48
【问题描述】:

我从 Messenger 平台 API 开始。我想做简单的 Messenger 聊天机器人。 Here is tutorial I follow.

如您所见,首先我需要设置 webhook(第 2 步)。所以基本上:提供一些 REST API 并返回一些数据的 Web 服务器。问题是:facebook 要求我提供一些当前在互联网上有效的真实、现有的应用程序 URL。 那么,我是否需要在每次更改某些内容时将代码上传到服务器?我可以在本地(在我的本地主机上)以某种方式对其进行测试吗?我如何测试我的机器人的行为?

【问题讨论】:

  • Facebook 如何 ping 您离线的服务器?
  • 有类似的问题,可以在这里找到答案:stackoverflow.com/questions/36674079/…
  • @WizKid facebook不需要自己连接。我正在考虑某种模拟器或假的本地实例,仅可用于测试。

标签: facebook facebook-graph-api facebook-apps chatbot facebook-messenger


【解决方案1】:

您可以使用一些服务向公众公开在 localhost 上运行的网络服务器。两个选项是localtunnelngrok

假设您的网络服务器在 http://localhost:8000/ 运行,您可以如何执行此操作的示例(来自 localtunnel 的快速入门)如下所示:

从 npm 安装 localtunnel:

npm install -g localtunnel

请求到本地服务器的隧道:

lt --port 8000

这将生成一个格式为https://foo.localtunnel.me 的链接,您可以使用该链接从网络访问您的本地主机。一个不错的功能是您会自动获取 https,因此 Facebook 不会给您“SSL 证书问题”错误。 Localtunnel 或 ngrok 也很适合与他人共享在本地运行的工作。

请注意,localtunnel url 仅在连接存在时才有效,因此如果连接结束,您必须更新 Facebook 的 url。

【讨论】:

  • 我正在尝试使用 localtunnel,但在尝试打开给定的 url 后显示“主机名无效”
  • 我需要在windows中配置一些东西吗?也许是防火墙?
  • 好的,我已经解决了问题。一些 IIS Express 问题。感谢您的帮助;)
  • @Ludwik11 没问题,很高兴为您提供帮助!
  • 这是一篇与 IIS Express 问题相关的帖子:stackoverflow.com/a/30601336/3648832
【解决方案2】:

我创建了一个库来尝试解决这个确切的问题!使用fb-local-chat-bot,您可以轻松地离线测试您的机器人。该库还使测试变得更加简单。如果你有兴趣,一定要看看

https://github.com/spchuang/fb-local-chat-bot

演示:

【讨论】:

    【解决方案3】:

    您可以使用 ngrok 在 localhost 中测试 messenger bot。您可以在以下位置下载它: https://ngrok.com/download

    在执行 ngrok 时,它将生成可用作 webhook 中的端点的安全链接。

    还可以通过ngrok查看每个请求和响应的详细状态

    http://localhost:4040/inspect/http

    稍后,完成后,您可以将代码部署到安全服务器。

    您可以在以下链接中找到有关如何构建基本聊天机器人的更多信息:

    How to build a basic chat bot on facebook messenger

    【讨论】:

      【解决方案4】:

      您可以免费在 heroku 上部署后端服务。它提供带有 RSA 的公共 DNS。

      【讨论】:

      • 他的主要关注点与托管无关,而是在对代码进行任何更改时上传代码。当您进行需要测试的小改动时,这会消耗大量时间。
      【解决方案5】:

      如果由于某种原因(例如将 webhook 路由到多台开发机器)无法使用 ngrok。请尝试我为在本地开发/调试 webhook 而创建的这个模拟器。这提供了 send api 和 messenger ui 的模拟

      我已经为 send api 和 messenger 创建了一个模拟器,用于在本地调试 web 挂钩

      https://github.com/SonOfSardaar/facebook-send-api-emulator

      我也遇到过这个(这个我还没试过,但看起来不错)

      https://docs.microsoft.com/en-us/bot-framework/debug-bots-emulator

      【讨论】:

        猜你喜欢
        • 2019-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-22
        • 2015-07-05
        • 2015-10-11
        • 2012-09-26
        相关资源
        最近更新 更多