什么是 Facebook webhook 页面订阅中的回调 URL?

What is Callback URL in Facebook webhook page subscription?

我正在尝试使用 Facebook 网络挂钩 API 流式传输实时 public 提要。在这里,我尝试在 Web 挂钩控制台中设置页面订阅。有一个名为 Callback URL 的字段。这是什么URL?

我还尝试阅读设置回调的文档 URL。但我想不通。

https://developers.facebook.com/docs/graph-api/webhooks#setup

回调 URL 不能是 SSL 本地主机吗?每当我尝试提供本地主机 URL 时,我都会收到一条错误消息 "Unable to verify provided URL"。

Facebook 将从他们的服务器向 URL 发出请求以提供更新——因此它当然必须可以通过互联网公开访问,而本地主机地址显然不是。

如果您订阅的对象和字段的任何数据发生变化,Facebook 将向 URL 发送请求。文档中描述了数据结构的样子。对于页面字段,直接 returns 新内容;对于用户字段,它只会告诉您哪些字段已更改,以便您随后可以请求该数据。

您只能获取您拥有管理员权限的页面的 real-time 更新。并且 Public Feed API 没有被弃用;但访问权限仅限于一小部分 Facebook 合作伙伴。你不能申请成为一个——如果你绝对需要这种数据,那么你必须联系其中一个合作伙伴,让他们为你开发一个解决方案。

您可以使用以下方式将请求转发到本地主机:

  1. https://ngrok.com/download
  2. 下载并安装 ngrok
  3. ./ngrok http 8445
  4. 使用 verify_token 和 https://<your_ngrok_io>/webhook 作为回调将您的页面订阅到 Webhooks URL。
  5. 在 Messenger 上与您的机器人交谈!

我认为这意味着您需要一台具有固定IP地址的服务器。如果你想使用来自Facebook的实时更新,你需要建立一个服务器来接收来自Facebook的post请求,同时与你的端点保持长连接,以便端点可以接收服务器推送的消息.

你必须编写一个 webhook 来从 fb 服务器获取 fb 请求,并且 webhook 应该是 运行 在 public ip 地址中,这个 public url就是要在回调url框中填写的那个。这样 fb 服务器可以通过 url 更新您,这不过是 运行 webhook 的 url。要获取 public url 用于识别您的 webhook 的 fb 地址,您可以使用 ngrok 或在 heroku 中托管您的网络书。