【问题标题】:What is Callback URL in Facebook webhook page subscription?Facebook webhook 页面订阅中的回调 URL 是什么?
【发布时间】:2016-04-18 02:37:43
【问题描述】:

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

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

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

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

【问题讨论】:

  • Facebook 将从他们的服务器向该 URL 发出请求以提供更新 - 因此它当然必须可以通过 Internet 公开访问,而 localhost 地址显然不是。
  • 好的。当我流式传输供稿时,这个 url 会被 facebook API 调用吗?如何获取响应提要对象?
  • 如果您订阅的对象和字段的任何数据发生更改,Facebook 将向该 URL 发送请求。文档中描述了数据结构的外观。对于页面字段,它直接返回新内容;对于用户字段,它只会告诉您哪些字段已更改,以便您可以请求该数据。
  • 谢谢CBore。这真的很有帮助。但在其他情况下,我正在尝试收听公共提要,而不管来自 facebook 的任何页面。使用 facbook API 可以吗?我听说公共供稿 API 已贬值?那是对的吗?无论如何我可以流式传输供稿吗?
  • 您只能获取您拥有管理员权限的页面的实时更新。并且 Public Feed API 未被弃用;但访问它仅限于少数 Facebook 合作伙伴。您不能申请成为其中之一 - 如果您绝对需要此类数据,那么您必须联系其中一个合作伙伴并让他们为您开发解决方案。

标签: facebook facebook-graph-api webhooks facebook-public-feed-api


【解决方案1】:

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

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

【讨论】:

  • 在 2 分钟内我的 localhost webhookable 就完成了!绝妙的答案!
  • fb 无法验证回调 url。你必须在 app.get('/', callback) 中写什么吗?
  • 是的,只要返回 200 OK。
  • 如果我有以下内容:Web Interface 127.0.0.1:4040 Forwarding ra.ngrok.io -> localhost:5000 放什么?
  • 到目前为止,这是我在网上找到的使 localhost 文件可访问的最佳解决方案
【解决方案2】:

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

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

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

【讨论】:

  • "您只能获取您拥有管理员访问权限的页面的实时更新" 所以在我的应用程序中,我不能使用 webhook 来通知用户他想要的页面的更改,例如当页面发布新视频、照片或帖子时?
  • 仅当用户或您是页面的管理员时,您才能使用他们/您的用户访问令牌为该页面生成页面访问令牌。
  • 所以目前无法在我的应用程序中实现类似于 Facebook over web [通知(所有帖子 - 视频 - 照片 - 链接 - 状态更新)] ... 那么,还有其他方法吗例如,允许我的应用程序用户关注他们想要的页面并在这些页面发布视频时得到通知?因为对每个客户定期检查多个页面对我来说不是一个理想的解决方案。
  • 我们有什么办法可以使用 localhost 作为 facebook 的 webhook 吗?
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多