# Réception de Webhook

Afin de recevoir les données envoyées par votre robot d'exploration, vous devrez créer un point de terminaison webhook sur votre serveur.

Votre webhook de serveur doit...

  • Être accessible publiquement depuis les serveurs de Crawlbase
  • Soyez prêt à recevoir POST appelle et répond dans les 200 ms
  • Répondez dans les 200 ms avec un code d'état 200, 201 or 204 sans contenu

La manière dont les données sont structurées dépendra du format que vous avez spécifié lors de l'envoi de l'URL avec le paramètre format, &format=html (qui est la valeur par défaut) ou &format=json.

Le moteur Crawler renverra les données à votre point de terminaison de rappel via POST méthode avec gzip compression.

Remarque : Assurez-vous que votre rappel est disponible à tout moment. Chaque fois que nous livrons à votre rappel et que votre serveur ne parvient pas à renvoyer une réponse réussie, nous réessayons d'explorer la page, puis nous retentons la livraison. Ces tentatives sont considérées comme des demandes réussies, elles sont donc facturées.

Remarque : Si vous utilisez des webhooks Zapier, le Crawler n'envoie pas les données compressées. Les hooks Zapier ne fonctionnent pas avec la compression Gzip.

# Exemples de demandes

Vous trouverez ici des exemples de ce que vous pouvez vous attendre à recevoir de Crawlbase Crawler sur votre webhook de serveur.

# Format HTML

Cela se produira lorsque vous appellerez l'API avec le &format=html.

Headers:
  "Content-Type" => "text/plain"
  "Content-Encoding" => "gzip"
  "Original-Status" => 200
  "PC-Status" => 200
  "rid" => "The RID you received in the push call"
  "url" => "The URL which was crawled"

Body:
  The HTML of the page

# Formater JSON

Cela se produira lorsque vous appellerez l'API avec le &format=json.

Headers:
  "Content-Type" => "gzip/json"
  "Content-Encoding" => "gzip"

Body:
{
  pc_status: 200,
  original_status: 200,
  rid: "The RID you received in the push call",
  url: "The URL which was crawled",
  body: "The HTML of the page"
}

Gardez à l'esprit que pc_status et original_status doivent être vérifiés. Vous pouvez en savoir plus à leur sujet [ici]/fr/crawling-api/response/#pc-status) et ici respectivement.

# Test d'intégration

Lors de la création de votre webhook, il peut être utile de voir la réponse exacte pour une URL spécifique.

Pour faciliter les tests, vous pouvez configurer Crawlbase Storage dans vos robots d'exploration à des fins de test. Vous pouvez voir ici (ouvre une nouvelle fenêtre) (opens new window).

# Bot de surveillance

Le Crawler surveillera l'URL de votre webhook pour connaître son statut. Si le webhook est en panne, le Crawler s'arrêtera et reprendra automatiquement lorsque votre webhook sera à nouveau opérationnel.

Notre robot de surveillance continuera d'envoyer des requêtes à votre point de terminaison webhook. Assurez-vous d'ignorer ces requêtes avec un 200 code d'état.

  • Les demandes de surveillance sont présentées sous forme de requête POST avec un corps json comme vous les recevrez avec les appels sans surveillance.
  • Les demandes de surveillance sont fournies avec l'agent utilisateur Crawlbase Monitoring Bot 1.0 afin que vous puissiez facilement les ignorer avec le statut 200.

# Protéger votre webhook

Si vous utilisez un point de terminaison aléatoire comme yourdomain.com/2340JOiow43djoqe21rjosi il est peu probable qu'il soit découvert, mais dans tous les cas, vous pouvez protéger le point de terminaison du webhook avec les méthodes suivantes (ou plusieurs d'entre elles combinées) :

  • Envoyer nous [en-tête personnalisé selon votre demande]/fr/crawler/pushing/#sending-additional-data) avec un jeton dont vous vérifiez l'existence dans votre webhook.
  • Utilisez un paramètre d'URL dans votre URL et vérifiez son existence sur la demande de webhook, comme : yourdomain.com/2340JOiow43djoqe21rjosi?token=1234
  • Accepter uniquement POST demandes.
  • Vérifiez certains des en-têtes attendus (par exemple Pc-Status, Original-Status, ridEtc).

Nous ne recommandons pas la liste blanche d'adresses IP, car nos robots d'exploration peuvent effectuer des opérations à partir de nombreuses adresses IP différentes et les adresses IP peuvent changer sans notification préalable.