Integrare l'API URLW in PHP: guida completa con esempi di codice
Come integrare l'API di abbreviazione URL URLW in PHP con cURL. Codice completo, gestione degli errori ed esempi pratici per le vostre applicazioni PHP.
Sviluppate in PHP e volete integrare la creazione di link brevi nella vostra applicazione? L'API REST URLW è progettata per essere semplice da usare da qualsiasi linguaggio. Ecco una guida completa per integrare URLW nel vostro progetto PHP, con codice di produzione pronto all'uso.
Prerequisiti e configurazione
Per utilizzare l'API URLW da PHP, avete bisogno di:
- PHP 7.4 o superiore
- L'estensione cURL attivata (verificate con
phpinfo()ophp -m | grep curl) - La vostra chiave API URLW (disponibile in Impostazioni → API del vostro account)
Iniziate archiviando la vostra chiave API in modo sicuro, idealmente in una variabile d'ambiente o in un file di configurazione non versionato:
<?php
// Caricamento da variabile d'ambiente (raccomandato)
$apiKey = getenv('URLW_API_KEY');
// O da file di config (mai nel codice versionato!)
// $apiKey = 'la_vostra_chiave_api_qui';
define('URLW_API_BASE', 'https://urlw.fr/api/v1');
Abbreviare un URL in PHP
Ecco una funzione PHP completa per creare un link breve tramite l'API URLW:
<?php
function urlwShorten(string $url, string $apiKey, string $slug = '', string $domain = ''): array
{
$payload = ['url' => $url];
if (!empty($slug)) {
$payload['slug'] = $slug;
}
if (!empty($domain)) {
$payload['domain'] = $domain;
}
$ch = curl_init(URLW_API_BASE . '/links');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_TIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => true,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlError = curl_error($ch);
curl_close($ch);
if ($curlError) {
throw new \RuntimeException('Errore cURL: ' . $curlError);
}
$data = json_decode($response, true);
if ($httpCode < 200 || $httpCode >= 300) {
$message = $data['message'] ?? 'Errore sconosciuto';
throw new \RuntimeException("Errore API URLW ({$httpCode}): {$message}");
}
return $data;
}
// Utilizzo
try {
$result = urlwShorten(
'https://esempio.com/la-mia-lunga-pagina-prodotto?ref=newsletter',
getenv('URLW_API_KEY'),
'promo-estate',
'go.vostro-brand.it'
);
echo 'Link breve creato: ' . $result['short_url'] . PHP_EOL;
// Output: Link breve creato: https://go.vostro-brand.it/promo-estate
} catch (\RuntimeException $e) {
error_log('Errore URLW: ' . $e->getMessage());
// Gestire l'errore secondo la logica applicativa
}
Recuperare le statistiche di un link
Per visualizzare le statistiche di clic di un link nella vostra applicazione:
<?php
function urlwGetStats(string $linkId, string $apiKey): array
{
$ch = curl_init(URLW_API_BASE . '/links/' . urlencode($linkId) . '/stats');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Accept: application/json',
],
CURLOPT_TIMEOUT => 10,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
throw new \RuntimeException("Impossibile recuperare le statistiche (HTTP {$httpCode})");
}
return json_decode($response, true);
}
$stats = urlwGetStats('lnk_abc123', getenv('URLW_API_KEY'));
echo 'Clic totali: ' . $stats['total_clicks'] . PHP_EOL;
echo 'Clic unici: ' . $stats['unique_clicks'] . PHP_EOL;
Integrazione in un progetto Symfony o Laravel
Per un'integrazione pulita in un progetto Symfony o Laravel, create un servizio dedicato:
- Symfony: create una classe
UrlwClientcome servizio con iniezione diHttpClientInterface(componentesymfony/http-client). Dichiarate la vostra chiave API inservices.yamlda una variabile d'ambienteURLW_API_KEY. - Laravel: create un
UrlwServiceinapp/Services/e registratelo nel container IoC. Utilizzateconfig('services.urlw.key')per la chiave.
In entrambi i casi, incapsulate la logica HTTP in questo servizio e non chiamatelo mai direttamente dai vostri controller. Questo facilita i test unitari con mock.
Consultate la documentazione completa dell'API URLW per l'elenco esaustivo degli endpoint e dei parametri. Iniziate creando il vostro account URLW per ottenere la vostra chiave API.
Prova URLW gratuitamente
50 link brevi, API REST inclusa, nessuna carta di credito richiesta.