15

我正在尝试使用 Facebook Web-hook API 流式传输实时公共提要。在这里,我尝试在 Web-hook 控制台中设置页面订阅。有一个称为回调 URL 的字段。这个网址是关于什么的?

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

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

回调 URL 不能是 SSL localhost 吗?每当我尝试提供 localhost URL 时,我都会收到一条错误消息“无法验证提供的 URL”。

4

4 回答 4

24

您可以使用以下命令将请求转发到 localhost:

  1. 从https://ngrok.com/download下载并安装 ngrok
  2. ./ngrok http 8445
  3. 使用 verify_token 和https://<your_ngrok_io>/webhook回调 URL 将您的页面订阅到 Webhook。
  4. 在 Messenger 上与您的机器人交谈!
于 2016-07-14T02:05:24.620 回答
4

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

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

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

于 2016-01-13T10:59:49.897 回答
0

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

于 2016-12-02T03:01:46.777 回答
0

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

于 2019-02-11T02:33:49.633 回答