Webhooks – Authentifizierungstyp-API-Schlüssel – Geheimname und Geheimwert – in PHP
<p>Ich versuche, einen Webhook mithilfe eines API-Schlüssels (geheimer Name und geheimer Wert) zu authentifizieren.所以我制作了两个文件:</p>
<p>webhook.php:</p>
<pre class="brush:php;toolbar:false;"><?php
include('webhook-api-key.php');
// Den Anfragetext aus der Webhook-POST-Anfrage abrufen
if ($http_status_code === 200){
$request_body = file_get_contents('php://input');
// Konvertieren Sie den Anforderungstext von JSON in ein PHP-Objekt
$request_data = json_decode($request_body);
// Die Kontakteigenschaften aus den Anfragedaten extrahieren
$contact_properties = $request_data->properties;
// Den Wert der E-Mail-Eigenschaft extrahieren
$email = $contact_properties->email->value;
// Den Eigenschaftswert des Vornamens extrahieren
$first_name = $contact_properties->firstname->value;
// Den Eigenschaftswert des Nachnamens extrahieren
$last_name = $contact_properties->lastname->value;
// Machen Sie etwas mit den Kontaktdaten, z. B. das Hinzufügen zu einer Datenbank oder das Versenden einer E-Mail-Benachrichtigung
// Zum Beispiel:
$contact_data = array(
'email' => $E-Mail,
'Vorname' => $vorname,
'last_name' => $last_name
);
// Fügen Sie die Kontaktdaten einer Datenbank hinzu oder senden Sie eine E-Mail-Benachrichtigung usw.
// Eine HTTP-Antwort an HubSpot senden, die angibt, dass der Webhook erfolgreich empfangen und verarbeitet wurde
http_response_code(200);
}
?></pre>
<p> und webhook-api-key.php:</p>
<pre class="brush:php;toolbar:false;"><?php
$endpoint_url = 'https://.../hubspot/webhook.php';
// Richten Sie den geheimen Namen und den geheimen Wert des API-Schlüssels ein
$api_key_secret_name = 'word';
$api_key_secret_value = 'anther_word';
// Richten Sie die HTTP-POST-Anforderungsheader ein
$headers = array(
'Inhaltstyp: application/json',
'Autorisierung: Inhaber '.$api_key_secret_value
);
// Richten Sie den HTTP-POST-Anfragetext ein
$body = array(
'api_key' => $api_key_secret_value
);
// Senden Sie die HTTP-POST-Anfrage an die Webhook-Endpunkt-URL
$ch = curl_init($endpoint_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
$response = curl_exec($ch);
// Auf Fehler prüfen
if(curl_errno($ch)) {
$error_message = curl_error($ch);
echo 'Fehler: '.$error_message;
}
// Den Statuscode der HTTP-Antwort abrufen
$http_status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Schließe die HTTP-POST-Anfrage
curl_close($ch);
// Behandeln Sie die Webhook-Antwort
if ($http_status_code === 200) {
echo 'Webhook erfolgreich authentifiziert.';
} anders {
echo 'Webhook-Authentifizierung fehlgeschlagen mit HTTP-Statuscode: ' . $http_status_code;
}
?></pre>
<p>在 Hubspot ist eine Website mit der Bezeichnung „https://.../hubspot/webhook.php“.</p>
<p>Ist das in Ordnung? Ich frage, denn als ich versuchte, es zu testen, hat es meinen Server zerstört und ich kann im Internet kein Beispiel finden, das diese Art der Authentifizierung verwendet. </p>
<p>Vielen Dank! </p>