อธิบายบทความก่อนหน้านี้ พื้นฐานการตรวจสอบสิทธิ์ Kencang.in API. ตอนนี้เรามาถึงรหัสแล้ว ด้านล่างนี้เป็นตัวอย่างของการสร้างลิงก์สั้น ๆ ในสามภาษาที่ผู้ใช้ของเราใช้บ่อยที่สุด: PHP สำหรับไซต์ WordPress และ Laravel, Python สำหรับสคริปต์และข้อมูลอัตโนมัติ และ JavaScript ใน Node.js สำหรับบริการสมัยใหม่ ตัวอย่างทั้งหมดอ่านคีย์ API จากตัวแปรสภาพแวดล้อม แทนที่จะเขียนลงในโค้ดโดยตรง
เอนด์พอยต์ที่ใช้
POST https://kencang.in/api/url/add ด้วยเนื้อหา JSON พารามิเตอร์ขั้นต่ำคือ url. ตอบสนองได้สำเร็จแล้ว error: 0, idและ shorturl. มีรายการพารามิเตอร์ทั้งหมดอยู่ในนั้น เอกสารสำหรับนักพัฒนา.
PHP พร้อม 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'];
ใน Laravel คุณสามารถแทนที่บล็อก cURL ด้วย Http::withToken($key)->post(...). หากคุณใช้ WordPress ให้ใช้มัน wp_remote_post() เพื่อติดตามพร็อกซีของไซต์และการกำหนดค่า SSL การอ้างอิงฟังก์ชัน PHP cURL มีอยู่ที่ เอกสารอย่างเป็นทางการของ PHP.
Python ด้วย requests

ห้องสมุด requests จัดการการทำให้เป็นอนุกรม JSON ผ่านพารามิเตอร์ json= และเพิ่มส่วนหัว Content-Type โดยอัตโนมัติ ให้เสมอ timeout เพื่อให้สคริปต์ไม่ค้างหากเครือข่ายมีปัญหา หากต้องการสร้างลิงก์หลายร้อยลิงก์จากไฟล์ CSV ให้รวมการโทรเหล่านี้เข้าด้วยกันและให้หน่วงเวลาเล็กน้อยตามขีดจำกัดอัตราของแพ็กเกจของคุณ
JavaScript (Node.js 18+) ด้วย fetch

Node.js 18 ขึ้นไปมีอยู่แล้ว fetch ค่าเริ่มต้น อย่าเรียกใช้โค้ดนี้ในเบราว์เซอร์ เนื่องจากคีย์ API จะมองเห็นได้โดยใครก็ตามที่เปิด DevTools หากส่วนหน้าของคุณจำเป็นต้องสร้างลิงก์ ให้สร้างเอนด์พอยต์บนแบ็คเอนด์ของคุณที่เรียก Kencang.in API เอกสารประกอบ fetch สามารถอ่านได้ เอกสารเว็บ MDN.
จัดการการตอบสนองอย่างถูกต้อง
- ตรวจสอบรหัสสถานะ HTTP ก่อน: สำเร็จ 200 รายการ, คีย์ไม่ถูกต้อง 401 รายการ, คุณลักษณะ 403 ไม่พร้อมใช้งานในแพ็กเกจ, เกินขีดจำกัดอัตรา 429 รายการ, ปัญหาเซิร์ฟเวอร์ 5xx
- จากนั้นตรวจสอบ
errorในเนื้อหาคำขอ ข้อผิดพลาดในการตรวจสอบข้อมูลบางอย่าง เช่น ชื่อย่อถูกใช้แล้วหรือ URL ไม่ถูกต้อง จะส่งกลับด้วยสถานะ 200 และerror: 1พร้อมด้วยข้อความ - บันทึก
idส่งคืนในฐานข้อมูลของคุณเอง เนื่องจากคุณต้องการใช้เพื่ออัปเดตหรือลบลิงก์ - ส่งคำขอ idempotent ทุกครั้งที่เป็นไปได้: ใช้ชื่อย่อที่กำหนดขึ้น เช่น รหัสผลิตภัณฑ์ เพื่อไม่ให้การโทรกลับสร้างลิงก์ที่ซ้ำกัน
ตัวอย่างกรณีจริง
ร้านค้าออนไลน์เพิ่มฮุกเมื่อเผยแพร่สินค้าใหม่ ฮุกเรียก API โดยใช้ SKU สินค้าเป็นชื่อย่อ แล้วบันทึก shorturl ไปยังคอลัมน์ผลิตภัณฑ์ ทีมโซเชียลมีเดียเพียงคัดลอกลิงก์จากแผงผู้ดูแลระบบ และทุกคลิกจะถูกบันทึกตามผลิตภัณฑ์ ก็สามารถนำมาทำลวดลายเดียวกันได้ คิวอาร์โค้ด จำนวนมากสำหรับบรรจุภัณฑ์.
ถัดไป
เมื่อสร้างลิงก์แล้ว ให้เพิ่มขีดจำกัดอัตราแล้วลองจัดการอีกครั้งที่อธิบายไว้ในบทความ และการจัดการข้อผิดพลาดใน APIหรือรับการคลิกผ่านการแจ้งเตือน เว็บฮุก.
คำถามที่พบบ่อย
เหตุใดการตอบกลับจึงเป็น 200 แต่ลิงก์ไม่ถูกสร้างขึ้น
ตรวจสอบค่า error ในเนื้อหาผลตอบกลับ ข้อผิดพลาดในการตรวจสอบข้อมูล เช่น ชื่อย่อถูกใช้แล้วหรือ URL ไม่ถูกต้อง จะส่งกลับด้วยสถานะ 200 และ error มีค่า 1 พร้อมข้อความ โค้ดของคุณต้องตรวจสอบทั้งสถานะ HTTP และคีย์ error
จะหลีกเลี่ยงลิงก์ที่ซ้ำกันเมื่อมีการร้องขอซ้ำได้อย่างไร
ใช้ชื่อย่อที่กำหนด เช่น รหัสผลิตภัณฑ์หรือรหัสคำสั่งซื้อ หากคำขอแรกสำเร็จจริง การทำซ้ำจะถูกปฏิเสธเนื่องจากมีชื่อย่ออยู่แล้ว และแอปพลิเคชันของคุณสามารถดึงลิงก์ที่สร้างไว้แล้วแทนที่จะสร้างลิงก์ใหม่
มีไลบรารี่อย่างเป็นทางการสำหรับ PHP หรือ Python หรือไม่?
Kencang.in API เป็น REST ธรรมดาที่มี JSON ดังนั้นไลบรารี HTTP มาตรฐานในแต่ละภาษาจึงเพียงพอแล้ว: cURL หรือ Guzzle ใน PHP, คำขอใน Python และดึงข้อมูลใน Node.js ตัวอย่างในบทความนี้สามารถคัดลอกไปยังโปรเจ็กต์ของคุณได้โดยตรง
กำหนดเวลาที่แนะนำสำหรับคำขอคือเท่าใด
สิบวินาทีก็เพียงพอสำหรับสภาวะปกติ โดยทั่วไปการสร้างการเปลี่ยนเส้นทางและลิงก์จะเสร็จสิ้นภายในหลายร้อยมิลลิวินาที ดังนั้นคำขอที่เกินระยะหมดเวลาจึงมีแนวโน้มมากขึ้นเนื่องจากปัญหาเครือข่าย และควรลองอีกครั้งโดยมีความล่าช้า