【问题标题】:Facebook Messenger Platform ngrokFacebook Messenger 平台 ngrok
【发布时间】:2016-08-09 09:03:33
【问题描述】:

我尝试为 facebook messenger api 设置一个 webhook,并尝试通过 ngrok 转发到我的 localhost node.js 服务器。来自 facebook 的用于检查服务器的 GET 请求运行良好。但是,当我通过 Messenger 向我的网站发送消息时,我的 webhook 没有得到任何响应。当我卷曲 ngrok 地址时它工作正常。有什么建议吗?

谢谢

【问题讨论】:

  • 首先要确保您遵循指南的Subscribe the App to a Page 部分。
  • 我做到了,正如我所说,从 Facebook 发送 GET 调用以验证钩子是否有效..
  • 无需完成“订阅应用程序”部分即可设置和验证 webhook,这就是我提到它的原因。如果您已经完成了该部分,则需要共享代码,以便我们了解发生了什么。
  • 有解决办法吗?我想我有类似的问题。我也在使用 ngrok,所以我不确定 ngrok 是否相关?

标签: facebook facebook-messenger ngrok


【解决方案1】:

我遇到了类似的问题 -

我当前(半工作)的解决方法是从 Facebook 应用程序配置页面(在应用程序设置页面 -> 左侧面板中的 Messenger -> Webhooks 部分中)取消订阅我的测试页面,然后重新订阅我的测试 Facebook页。当我在 Messenger 的测试页面中输入内容后,我会立即收到 Http POST 消息。

当然,这只能帮助测试。它在生产环境中没有帮助。

【讨论】:

    【解决方案2】:

    只要您用于 Messenger 集成的 Facebook 应用处于未发布状态,即未经过审核流程,只有管理员、开发人员和测试人员的消息会通过 webhook 中继。 检查您使用的用户是否对应用拥有正确的权限。

    在某些情况下,Facebook 也会停止转发消息,例如,如果您的 webhook 端点反复返回错误。在developers.facebook.com 平台中检查您的警报仪表板。 解决方法是取消订阅,然后重新订阅一个页面。

    更多提示: 根据您在接收端使用的框架,它可能会拒绝请求中带有 x-forwarded-for 标头的消息(在我的例子中是 Symfony 2)。 如果遇到此类问题,请使用 -host-header=rewrite 选项和 ngrok 重写请求标头。

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 2016-10-27
      • 2016-11-16
      • 2016-12-06
      • 1970-01-01
      相关资源
      最近更新 更多