Webhooks - Kunci API Jenis Pengesahan - Nama Rahsia dan Nilai Rahsia - dalam PHP
P粉545910687
2023-08-30 18:46:16
<p>Saya cuba mengesahkan webhook menggunakan kunci api (nama rahsia dan nilai rahsia).所以我制作了两个文件:</p>
<p>webhook.php:</p>
<pre class="brush:php;toolbar:false;"><?php
include('webhook-api-key.php');
// Dapatkan semula badan permintaan daripada permintaan POST webhook
jika ($http_status_code === 200){
$request_body = file_get_contents('php://input');
// Tukar badan permintaan daripada JSON kepada objek PHP
$request_data = json_decode($request_body);
// Ekstrak sifat kenalan daripada data permintaan
$contact_properties = $request_data->properties;
// Ekstrak nilai sifat e-mel
$email = $contact_properties->email->value;
// Ekstrak nilai harta nama pertama
$first_name = $contact_properties->firstname->value;
// Ekstrak nilai harta nama akhir
$last_name = $contact_properties->lastname->value;
// Lakukan sesuatu dengan data kenalan, seperti menambahkannya pada pangkalan data atau menghantar pemberitahuan e-mel
// Sebagai contoh:
$data_hubungi = tatasusunan(
'e-mel' => $e-mel,
'first_name' => $first_name,
'last_name' => $last_name
);
// Tambahkan data kenalan ke pangkalan data atau hantar pemberitahuan e-mel, dsb.
// Hantar respons HTTP ke HubSpot yang menunjukkan bahawa webhook telah berjaya diterima dan diproses
http_response_code(200);
}
?></pra>
<p>和 webhook-api-key.php:</p>
<pre class="brush:php;toolbar:false;"><?php
$endpoint_url = 'https:/.../hubspot/webhook.php';
// Sediakan nama rahsia dan nilai rahsia kunci API
$api_key_secret_name = 'perkataan';
$api_key_secret_value = 'anther_word';
// Sediakan pengepala permintaan HTTP POST
$headers = array(
'Content-Type: application/json',
'Kebenaran: Pembawa '.$api_key_secret_value
);
// Sediakan badan permintaan HTTP POST
$body = array(
'kunci_api' => $api_key_secret_value
);
// Hantar permintaan HTTP POST ke URL titik akhir webhook
$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));
$respon = curl_exec($ch);
// Semak ralat
if(curl_errno($ch)) {
$error_message = curl_error($ch);
echo 'Ralat: '.$error_message;
}
// Dapatkan kod status respons HTTP
$http_status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Tutup permintaan HTTP POST
curl_close($ch);
// Kendalikan respons webhook
jika ($http_status_code === 200) {
echo 'Webhook berjaya disahkan.';
} lain {
echo 'Pengesahan webhook gagal dengan kod status HTTP: ' . $http_status_code;
}
?></pra>
<p>在 Hubspot 配置中,网址为“https:/.../hubspot/webhook.php”。</p>
<p>Adakah ini okey? Saya bertanya kerana apabila saya cuba mengujinya ia membunuh pelayan saya dan saya tidak dapat mencari contoh di internet menggunakan pengesahan jenis ini. </p>
<p>Terima kasih! </p>
Jadi ia sebenarnya sangat mudah. Tiada contoh di internet dan dokumentasinya kurang baik, menerangkan lebih lanjut tentang tandatangan Hubspot daripada kunci API. Saya akhirnya mengetahui cara ia berfungsi dan berikut ialah kod kerja: