Lewati ke konten

Segera: Promo Hari Pahlawan · diskon 30% mulai 7 Nov, pukul 00.00 WIB. Kode berlaku saat promo dimulai.

Lihat harga

Membuat Link Pendek Lewat API dengan PHP, Python, dan JavaScript

Membuat Link Pendek Lewat API dengan PHP, Python, dan JavaScript

Artikel sebelumnya menjelaskan dasar autentikasi API Kencang.in. Sekarang kita masuk ke kode. Di bawah ini contoh membuat link pendek dalam tiga bahasa yang paling sering dipakai pengguna kami: PHP untuk situs WordPress dan Laravel, Python untuk skrip otomasi dan data, serta JavaScript di Node.js untuk layanan modern. Semua contoh membaca kunci API dari variabel lingkungan, bukan menuliskannya langsung di kode.

Endpoint yang dipakai

POST https://kencang.in/api/url/add dengan body JSON. Parameter minimal adalah url. Respons sukses memiliki error: 0, id, dan shorturl. Daftar parameter lengkap ada di dokumentasi developer.

PHP dengan cURL

<?php
$key = getenv('KENCANG_KEY');
$payload = json_encode([
    'url'    => 'https://tokoanda.com/promo',
    'custom' => 'promo-mei',
]);

$ch = curl_init('https://kencang.in/api/url/add');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_TIMEOUT        => 10,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $key,
        'Content-Type: application/json',
    ],
]);
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);

$data = json_decode($response, true);
if ($status !== 200 || !isset($data['error']) || $data['error'] !== 0) {
    throw new RuntimeException($data['message'] ?? "HTTP $status");
}
echo $data['shorturl'];

Di Laravel, Anda bisa mengganti blok cURL dengan Http::withToken($key)->post(...). Jika memakai WordPress, gunakan wp_remote_post() agar mengikuti konfigurasi proxy dan SSL situs. Referensi fungsi cURL PHP tersedia di dokumentasi resmi PHP.

Python dengan requests

Python - Membuat Link Pendek Lewat API dengan PHP, Python, dan JavaScript
Python

Pustaka requests menangani serialisasi JSON lewat parameter json= dan otomatis menambahkan header Content-Type. Selalu berikan timeout agar skrip tidak menggantung jika jaringan bermasalah. Untuk membuat ratusan link dari file CSV, bungkus pemanggilan ini dalam perulangan dan beri jeda kecil sesuai rate limit paket Anda.

JavaScript (Node.js 18+) dengan fetch

Node.js - Membuat Link Pendek Lewat API dengan PHP, Python, dan JavaScript
Node.js

Node.js 18 ke atas sudah memiliki fetch bawaan. Jangan menjalankan kode ini di browser, karena kunci API akan terlihat oleh siapa pun yang membuka DevTools. Jika front-end Anda perlu membuat link, buat endpoint di backend Anda yang memanggil API Kencang.in. Dokumentasi fetch dapat dibaca di MDN Web Docs.

Menangani respons dengan benar

  • Periksa kode status HTTP terlebih dahulu: 200 sukses, 401 kunci tidak valid, 403 fitur tidak tersedia di paket, 429 melebihi rate limit, 5xx masalah server.
  • Kemudian periksa error di body. Beberapa kesalahan validasi, seperti alias sudah dipakai atau URL tidak valid, dikembalikan dengan status 200 dan error: 1 beserta pesan.
  • Simpan id yang dikembalikan di basis data Anda sendiri, karena Anda membutuhkannya untuk memperbarui atau menghapus link.
  • Buat permintaan idempoten jika memungkinkan: gunakan alias deterministik, misalnya kode produk, agar pemanggilan ulang tidak membuat link ganda.

Contoh kasus nyata

Sebuah toko online menambahkan hook pada saat produk baru dipublikasikan. Hook memanggil API dengan alias berupa SKU produk, lalu menyimpan shorturl ke kolom produk. Tim media sosial tinggal menyalin link dari panel admin, dan setiap klik tercatat per produk. Pola yang sama bisa dipakai untuk membuat QR code massal untuk kemasan.

Berikutnya

Setelah pembuatan link berjalan, tambahkan penanganan rate limit dan retry yang dijelaskan di artikel rate limit dan penanganan error di API, atau terima pemberitahuan klik lewat webhook.

Pertanyaan umum

Kenapa respons 200 tetapi link tidak dibuat?

Periksa nilai error di body respons. Kesalahan validasi seperti alias sudah dipakai atau URL tidak valid dikembalikan dengan status 200 dan error bernilai 1 disertai pesan. Kode Anda harus memeriksa status HTTP dan kunci error sekaligus.

Bagaimana menghindari link ganda saat permintaan diulang?

Gunakan alias deterministik, misalnya kode produk atau ID pesanan. Jika permintaan pertama sebenarnya berhasil, pengulangan akan ditolak karena alias sudah ada, dan aplikasi Anda bisa mengambil link yang sudah dibuat alih-alih membuat baru.

Apakah ada pustaka resmi untuk PHP atau Python?

API Kencang.in adalah REST biasa dengan JSON, sehingga pustaka HTTP standar di tiap bahasa sudah cukup: cURL atau Guzzle di PHP, requests di Python, dan fetch di Node.js. Contoh di artikel ini bisa langsung disalin ke proyek Anda.

Berapa batas waktu yang disarankan untuk permintaan?

Sepuluh detik cukup untuk kondisi normal. Pengalihan dan pembuatan link biasanya selesai dalam ratusan milidetik, jadi permintaan yang melewati batas waktu lebih mungkin disebabkan masalah jaringan dan sebaiknya dicoba ulang dengan jeda.

Tim Kencang.in

Ditulis oleh tim produk dan marketing Kencang.in, pemendek link, QR code dinamis, dan bio page buatan Indonesia yang dioperasikan oleh PT Kode Digital Solusindo. Kami menulis berdasarkan pengalaman mengelola kampanye klien dan membangun fitur yang dibahas.

Tentang Kencang.in Hubungi kami