是否可以在Web扩展中接收webhook事件?

时间:2017-08-23 06:25:10

标签: webhooks firefox-webextensions

我们需要从Web扩展本身的域中获取webhook事件。该域名不受我们控制。

我们使用browser.identity.getRedirectURL()获取网络扩展程序的网址。我们已将此注册为其他域中的webhook POST回调URL。

当其他域在回调URL中发布数据时,是否可以接收webhook事件?是否足以拦截HTTP头以获取数据,或者我们是否需要在Web扩展中包含Node模块/服务器?

1 个答案:

答案 0 :(得分:0)

不,不像你描述的那样。这是一个非常深刻的误解,关于webhooks和/或browser.identity如何工作。

您的webextension正在客户端计算机上运行;它不是一个监听连接的网络服务器(扩展根本不能这样做)。

因此,每当发出webhook事件的其他计算机尝试连接到提供的端点时,无论它连接到什么都不是您的扩展。

你提到了browser.identity.getRedirectURL()并且似​​乎认为这是一个分配给你的webextension的真实地址,而其他人可以POST对它(以及你的扩展以某种方式告知它)。

情况并非如此:相反,它是一个“虚拟”URL,如果您(浏览器)导航到它,浏览器将特别对待它。该请求实际上从未将您的计算机留给某个服务器。没有其他客户端可以连接到它(除了具有相同扩展名的其他浏览器 - 但它再次只能到达它们)。

接收webhooks的解决方案是在某个地方有一个可以接收它们的实际网络服务器,以及某种推送机制来通知你对事件的扩展: