Webhooks - Kunci API Jenis Pengesahan - Nama Rahsia dan Nilai Rahsia - dalam PHP
P粉545910687
P粉545910687 2023-08-30 18:46:16
0
1
581
<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>
P粉545910687
P粉545910687

membalas semua(1)
P粉413307845

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:

$expectedSecretName = 'word'; // Replace with your expected secret name
$expectedSecretValue = 'another_word'; // Replace with your expected secret value

$requestBody = file_get_contents('php://input');
$data = json_decode($requestBody);

    if($_SERVER['HTTP_WORD'] == $expectedSecretValue){
//do something with values
$email = $data->email;
$firstname= $data->firstname;
$lastname= $data->lastname;
}
else{
//not from Hubspot
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan