2017-08-23 1 views
0

Nous avons besoin d'obtenir des événements webhook à partir d'un domaine dans les extensions Web lui-même. Ce domaine n'est pas sous notre contrôle.Est-il possible de recevoir des événements webhook dans les extensions Web?

Nous obtenons l'URL de l'extension web en utilisant browser.identity.getRedirectURL(). Nous l'avons enregistré comme URL de rappel POST webhook dans un autre domaine.

Est-il possible de recevoir les événements webhook chaque fois que l'autre domaine POST les données dans l'URL de rappel? Serait-il suffisant d'intercepter les en-têtes HTTP pour obtenir les données ou aurions-nous besoin de modules/serveurs Node dans l'extension web?

Répondre

0

Non, pas comme vous l'avez décrit. C'est un malentendu assez profond comment webhooks et/ou browser.identity fonctionnent.

Votre extension Web s'exécute sur une machine client; ce n'est pas un serveur web qui écoute les connexions (une extension ne peut pas faire ça du tout).

Donc, chaque fois une autre machine qui émet un événement webhook essaie de se connecter au point d'extrémité prévu, quoi qu'il se connecte est pas votre extension. Vous faites une allusion à browser.identity.getRedirectURL() et semblez penser qu'il s'agit d'une véritable adresse attribuée à votre extension web et que d'autres personnes peuvent y avoir accès (et votre extension en sera en quelque sorte informée).

Ce n'est pas le cas: il s'agit plutôt d'une URL "virtuelle" que le navigateur traitera spécialement si vous (le navigateur) y navigue. Cette requête ne laisse jamais votre machine à un serveur. Aucun autre client ne peut s'y connecter (sauf pour les autres navigateurs avec la même extension - mais encore une fois, il ne les atteindra jamais).

Une solution pour recevoir webhooks serait d'avoir un serveur Web réel quelque part qui peut les recevoir, plus une sorte de mécanisme de poussée pour informer votre extension de l'événement: