Bài viết trước giải thích Khái niệm cơ bản về xác thực API Kencang.in. Bây giờ chúng ta đi đến đoạn mã. Dưới đây là ví dụ về cách tạo liên kết ngắn bằng ba ngôn ngữ mà người dùng của chúng tôi sử dụng thường xuyên nhất: PHP cho các trang web WordPress và Laravel, Python cho tập lệnh và dữ liệu tự động hóa và JavaScript trong Node.js cho các dịch vụ hiện đại. Tất cả các ví dụ đều đọc khóa API từ các biến môi trường thay vì viết chúng trực tiếp vào mã.
Điểm cuối được sử dụng
POST https://kencang.in/api/url/add với nội dung JSON. Các thông số tối thiểu là url. Phản hồi thành công có error: 0, idvà shorturl. Một danh sách đầy đủ các tham số có trong tài liệu dành cho nhà phát triển.
PHP với cURL
<?php
$key = getenv('KENCANG_KEY');
$payload = json_encode([
'url' => 'https://yourstore.com/promo',
'custom' => 'may-promo',
]);
$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'];
Trong Laravel, bạn có thể thay thế khối cURL bằng Http::withToken($key)->post(...). Nếu bạn sử dụng WordPress, hãy sử dụng nó wp_remote_post() để tuân theo cấu hình SSL và proxy của trang web. Tham khảo hàm PHP cURL có sẵn tại Tài liệu chính thức của PHP.
Python với requests

Thư viện requests xử lý tuần tự hóa JSON thông qua các tham số json= và tự động thêm tiêu đề Content-Type. Luôn đặt timeout để tập lệnh không bị treo nếu mạng gặp sự cố. Để tạo hàng trăm liên kết từ tệp CSV, hãy kết hợp các cuộc gọi này thành một vòng lặp và tạo ra một độ trễ nhỏ tùy theo giới hạn tần suất của gói của bạn.
JavaScript (Node.js 18+) với fetch

Node.js 18 trở lên đã có fetch mặc định. Không chạy mã này trong trình duyệt vì khóa API sẽ hiển thị với bất kỳ ai mở DevTools. Nếu giao diện người dùng của bạn cần tạo liên kết, hãy tạo điểm cuối trên chương trình phụ trợ gọi API Kencang.in. Tài liệu fetch có thể được đọc trong Tài liệu web MDN.
Xử lý phản hồi chính xác
- Trước tiên hãy kiểm tra mã trạng thái HTTP: 200 thành công, 401 khóa không hợp lệ, 403 tính năng không có sẵn trong gói, 429 vượt quá giới hạn tần suất, sự cố máy chủ 5xx.
- Sau đó kiểm tra
errortrong nội dung phản hồi. Một số lỗi xác thực dữ liệu, chẳng hạn bí danh đã được dùng hoặc URL không hợp lệ, được trả về với trạng thái 200 vàerror: 1cùng với tin nhắn. - Lưu
idđược trả về trong cơ sở dữ liệu của riêng bạn vì bạn cần nó để cập nhật hoặc xóa liên kết. - Thực hiện các yêu cầu bình thường bất cứ khi nào có thể: sử dụng các bí danh xác định, chẳng hạn như mã sản phẩm, để lệnh gọi lại không tạo ra các liên kết trùng lặp.
Ví dụ trường hợp thực tế
Cửa hàng trực tuyến thêm phần hấp dẫn khi sản phẩm mới được xuất bản. Hook gọi API với bí danh ở dạng SKU sản phẩm, sau đó lưu lại shorturl vào cột sản phẩm. Nhóm truyền thông xã hội chỉ sao chép liên kết từ bảng quản trị và mỗi lần nhấp đều được ghi lại trên mỗi sản phẩm. Mẫu tương tự có thể được sử dụng để thực hiện Mã QR số lượng lớn cho bao bì.
Tiếp theo
Sau khi quá trình tạo liên kết đang chạy, hãy thêm giới hạn tần suất và thử xử lý lại được mô tả trong bài viết giới hạn tần suất và xử lý lỗi trong APIhoặc nhận được thông báo nhấp qua webhook.
Câu hỏi thường gặp
Tại sao phản hồi 200 nhưng liên kết không được tạo?
Kiểm tra giá trị lỗi trong nội dung phản hồi. Các lỗi xác thực như bí danh đã được sử dụng hoặc URL không hợp lệ sẽ được trả về với trạng thái là 200 và giá trị lỗi là 1 kèm theo thông báo. Mã của bạn phải kiểm tra cả trạng thái HTTP và khóa lỗi cùng một lúc.
Làm cách nào để tránh các liên kết trùng lặp khi yêu cầu được lặp lại?
Sử dụng bí danh xác định, ví dụ như mã sản phẩm hoặc ID đơn hàng. Nếu yêu cầu đầu tiên thực sự thành công, yêu cầu lặp lại sẽ bị từ chối vì bí danh đã tồn tại và ứng dụng của bạn có thể truy xuất liên kết đã được tạo thay vì tạo liên kết mới.
Có thư viện chính thức cho PHP hoặc Python không?
API Kencang.in là REST đơn giản với JSON, vì vậy các thư viện HTTP tiêu chuẩn trong mỗi ngôn ngữ là đủ: cURL hoặc Guzzle trong PHP, yêu cầu trong Python và tìm nạp trong Node.js. Các ví dụ trong bài viết này có thể được sao chép trực tiếp vào dự án của bạn.
Giới hạn thời gian được khuyến nghị cho các yêu cầu là bao nhiêu?
Mười giây là đủ cho điều kiện bình thường. Việc chuyển hướng và thiết lập liên kết thường hoàn tất trong hàng trăm mili giây, do đó, các yêu cầu vượt quá thời gian chờ có nhiều khả năng là do sự cố mạng và cần được thử lại với độ trễ.