Webhooks - Clé API de type d'authentification - Nom secret et valeur secrète - en PHP
P粉545910687
2023-08-30 18:46:16
<p>J'essaie d'authentifier un webhook à l'aide d'une clé API (nom secret et valeur secrète).所以我制作了两个文件:</p>
<p>webhook.php:</p>
<pre class="brush:php;toolbar:false;"><?php
include('webhook-api-key.php');
// Récupère le corps de la requête de la requête POST du webhook
si ($http_status_code === 200){
$request_body = file_get_contents('php://input');
// Convertit le corps de la requête de JSON en un objet PHP
$request_data = json_decode($request_body);
// Extraire les propriétés du contact des données de la requête
$contact_properties = $request_data->properties;
// Extrait la valeur de la propriété email
$email = $contact_properties->email->valeur;
// Extrait la valeur de la propriété prénom
$first_name = $contact_properties->firstname->value;
// Extrait la valeur de la propriété du nom de famille
$last_name = $contact_properties->lastname->value;
// Faire quelque chose avec les données du contact, comme les ajouter à une base de données ou envoyer une notification par e-mail
// Par exemple:
$contact_data = tableau(
'e-mail' => $e-mail,
'prénom' => $prénom,
'nom' => $nom_de_famille
);
// Ajouter les données du contact à une base de données ou envoyer une notification par e-mail, etc.
// Envoie une réponse HTTP à HubSpot indiquant que le webhook a été reçu et traité avec succès
http_response_code(200);
}
?>≪/pré>
<p> et webhook-api-key.php:</p>
<pre class="brush:php;toolbar:false;"><?php
$endpoint_url = 'https:/.../hubspot/webhook.php';
// Configurer le nom secret et la valeur secrète de la clé API
$api_key_secret_name = 'mot' ;
$api_key_secret_value = 'anther_word';
// Configurer les en-têtes de requête HTTP POST
$en-têtes = tableau(
'Type de contenu : application/json',
'Autorisation : Porteur '.$api_key_secret_value
);
// Configurer le corps de la requête HTTP POST
$corps = tableau(
'api_key' => $api_key_secret_value
);
// Envoie la requête HTTP POST à l'URL du point de terminaison du webhook
$ch = curl_init($endpoint_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, vrai);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$réponse = curl_exec($ch);
// Vérifie les erreurs
si(curl_errno($ch)) {
$message_erreur = curl_erreur($ch);
echo 'Erreur : '.$error_message;
}
// Récupère le code d'état de la réponse HTTP
$http_status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Ferme la requête HTTP POST
curl_close($ch);
// Gère la réponse du webhook
si ($http_status_code === 200) {
echo 'Webhook authentifié avec succès.';
} autre {
echo 'L'authentification Webhook a échoué avec le code d'état HTTP : ' . $http_statut_code ;
}
?>≪/pré>
<p>在 Hubspot 配置中,网址为"https:/.../hubspot/webhook.php"。</p>
<p>Est-ce que ça va ? Je demande parce que lorsque j'ai essayé de le tester, cela a tué mon serveur et je ne trouve pas d'exemple sur Internet utilisant ce type d'authentification. </p>
<p>Merci ! </p>
C’est donc en fait très simple. Il n'y a aucun exemple sur Internet et la documentation est médiocre, expliquant davantage les signatures Hubspot que les clés API. J'ai enfin compris comment cela fonctionne et voici le code fonctionnel :