API media
API Senarai Fail Media
Dapatkan fail dalam pustaka media ruang kerja anda beserta URL muat turunnya, yang terbaharu dahulu. Tapis mengikut jenis atau cari mengikut nama untuk mencari fail yang anda muat naik sebelum ini dan guna semula URL-nya dalam mesej.
https://wbiztool.com/api/v1/media/list/Body: Rentetan pertanyaan, atau badan JSON dengan POST
Senarai ini termasuk fail yang dimuat naik dengan API Muat naik media dan di halaman Media directory (Direktori media). Fail yang dipadam tidak disertakan.
Contoh ringkas#
curl -G https://wbiztool.com/api/v1/media/list/ \
--data-urlencode client_id=12345 \
--data-urlencode api_key=YOUR_API_KEY \
--data-urlencode file_type=image \
--data-urlencode page=1 \
--data-urlencode limit=20import requests
response = requests.get(
"https://wbiztool.com/api/v1/media/list/",
params={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"file_type": "image",
"page": 1,
"limit": 20,
},
timeout=60,
)
result = response.json()
if result["status"] == 1:
data = result["data"]
print(f"Page {data['page']} of {data['total_pages']} ({data['total_count']} files)")
for media in data["media_files"]:
print(media["id"], media["original_file_name"], media["file_url"])
else:
print("Failed:", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const url = new URL("https://wbiztool.com/api/v1/media/list/");
url.search = new URLSearchParams({
client_id: "12345",
api_key: "YOUR_API_KEY",
file_type: "image",
page: "1",
limit: "20",
});
const response = await fetch(url);
const result = await response.json();
if (result.status === 1) {
const { data } = result;
console.log(`Page ${data.page} of ${data.total_pages} (${data.total_count} files)`);
for (const media of data.media_files) {
console.log(media.id, media.original_file_name, media.file_url);
}
} else {
console.error("Failed:", result.message);
}<?php
$query = http_build_query([
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'file_type' => 'image',
'page' => 1,
'limit' => 20,
]);
$ch = curl_init('https://wbiztool.com/api/v1/media/list/?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? 0) === 1) {
foreach ($result['data']['media_files'] as $media) {
echo $media['id'] . ' ' . $media['original_file_name'] . ' ' . $media['file_url'] . "\n";
}
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}Gantikan 12345 dan YOUR_API_KEY dengan nilai anda sendiri. Lihat Pengesahan identiti untuk mengetahui di mana nilai ini boleh didapati.
Parameter permintaan#
Hantar parameter dalam rentetan pertanyaan permintaan GET, atau sebagai badan JSON dalam permintaan POST dengan Content-Type: application/json. Jangan campurkan kedua-duanya: jika client_id berada dalam rentetan pertanyaan, badan JSON diabaikan. POST yang dikodkan sebagai borang juga berfungsi untuk client_id, api_key, file_type dan search, tetapi page dan limit diabaikan dalam medan borang; hantar kedua-duanya dalam rentetan pertanyaan atau JSON.
Pengesahan identiti
client_idintegerwajibAPI Client ID anda dari Settings → API keys (Tetapan → Kunci API).
api_keystringwajibKunci API anda dari halaman yang sama.
Penapis dan penomboran halaman
pageintegerpilihanNombor halaman, bermula dari
1(lalai). Nilai di bawah 1 dianggap sebagai1.limitintegerpilihanBilangan fail setiap halaman, dari 1 hingga 100. Lalai
20. Nilai melebihi 100 dianggap sebagai100, dan nilai di bawah 1 sebagai20.file_typestringpilihanimageuntuk imej sahaja, ataufileuntuk selainnya. Sebarang nilai lain diabaikan.searchstringpilihanPulangkan hanya fail yang nama asal atau nama simpanannya mengandungi teks ini. Tidak sensitif huruf besar/kecil.
curl -X POST https://wbiztool.com/api/v1/media/list/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"search": "invoice",
"page": 1,
"limit": 50
}'Respons#
{
"status": 1,
"message": "Media files retrieved successfully",
"data": {
"total_count": 1,
"page": 1,
"limit": 20,
"total_pages": 1,
"has_next": false,
"has_previous": false,
"media_files": [
{
"id": 5123,
"file_name": "media_12345_17895806123456.jpg",
"original_file_name": "diwali-sale.jpg",
"file_url": "https://wbiztool-static.s3.ap-southeast-1.amazonaws.com/media/org_12345/media_12345_17895806123456.jpg",
"file_type": "image",
"file_size": 524288,
"file_size_display": "512.0 KB",
"mime_type": "image/jpeg",
"is_image": true,
"file_extension": "jpg",
"created_at": "2026-09-16T10:23:52.106447+00:00",
"uploaded_by": "[email protected]"
}
]
}
}
| Medan | Jenis | Penerangan |
|---|---|---|
status | integer | 1 jika berjaya, 0 jika permintaan gagal. |
message | string | Media files retrieved successfully, jika tidak, mesej ralat. |
data.total_count | integer | Fail yang sepadan dengan penapis anda, merentasi semua halaman. |
data.page | integer | Halaman yang dipulangkan. |
data.limit | integer | Saiz halaman yang digunakan, selepas pelarasan 1 hingga 100. |
data.total_pages | integer | Bilangan halaman. 0 apabila tiada fail. |
data.has_next | boolean | true jika ada halaman selepas halaman ini. |
data.has_previous | boolean | true jika page lebih besar daripada 1. |
data.media_files | tatasusunan | Fail pada halaman ini, yang terbaharu dahulu. Kosong jika halaman melepasi penghujung. |
Medan fail media#
| Medan | Jenis | Penerangan |
|---|---|---|
id | integer | ID fail media. Gunakannya dengan Dapatkan fail media. |
file_name | string | Nama simpanan fail. |
original_file_name | string | Nama fail semasa ia dimuat naik. |
file_url | string | URL muat turun terus. Gunakannya sebagai img_url atau file_url semasa menghantar. |
file_type | string | image atau file. |
file_size | integer | Saiz dalam bait. |
file_size_display | string | Saiz yang mudah dibaca dengan satu tempat perpuluhan, contohnya 512.0 KB. |
mime_type | string | Jenis MIME, contohnya image/jpeg. |
is_image | boolean | true apabila file_type ialah image. |
file_extension | string | Sambungan huruf kecil bagi original_file_name, tanpa titik. |
created_at | string | Masa muat naik, ISO 8601 dalam UTC dengan ofset +00:00. |
uploaded_by | string atau null | Nama pengguna log masuk (biasanya alamat e-mel) ahli pasukan yang memuat naik fail. |
Ralat#
Ralat juga memulangkan HTTP 200, dengan status ditetapkan kepada 0:
{ "status": 0, "message": "Invalid API key" }
| Mesej | Cara membetulkannya |
|---|---|
client_id is required | Tambah client_id. Jika anda menghantar JSON, pastikan badannya JSON yang sah (ralat penghuraian dilaporkan dengan mesej ini). |
api_key is required | Tambah api_key. |
client_id must be a valid integer | Hantar client_id sebagai nombor. |
Invalid API key | Pastikan kunci wujud dan belum dipadam atau dinyahdayakan. |
Invalid client_id for this API key | Kunci itu milik client_id yang lain. |
Error retrieving media files: … | Biasanya page atau limit dalam rentetan pertanyaan atau medan borang bukan nombor bulat. Dalam badan JSON, tiada ralat: jika page bukan nombor bulat, page, limit, file_type dan search semuanya diabaikan, jadi anda mendapat halaman 1 dengan 20 fail tanpa penapis. Jika hanya limit yang bukan nombor bulat, limit, file_type dan search diabaikan. |
Membaca setiap halaman#
Teruskan meminta halaman seterusnya selagi data.has_next ialah true.
import requests
files, page = [], 1
while True:
result = requests.get(
"https://wbiztool.com/api/v1/media/list/",
params={"client_id": 12345, "api_key": "YOUR_API_KEY", "page": page, "limit": 100},
timeout=60,
).json()
if result["status"] != 1:
raise RuntimeError(result["message"])
files += result["data"]["media_files"]
if not result["data"]["has_next"]:
break
page += 1
print(len(files), "files")// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const files = [];
let page = 1;
while (true) {
const url = new URL("https://wbiztool.com/api/v1/media/list/");
url.search = new URLSearchParams({ client_id: "12345", api_key: "YOUR_API_KEY", page: String(page), limit: "100" });
const result = await (await fetch(url)).json();
if (result.status !== 1) throw new Error(result.message);
files.push(...result.data.media_files);
if (!result.data.has_next) break;
page += 1;
}
console.log(files.length, "files");Petua#
- Gunakan parameter hantar yang betul: apabila
is_imageialahtrue, hantar URL sebagaiimg_urldenganmsg_type1; jika tidak, sebagaifile_urldenganmsg_type2. Lihat Hantar mesej. - Jauhkan kunci API anda daripada log: rentetan pertanyaan sering direkodkan oleh proksi dan pelayan. Jika perkara ini penting bagi anda, gunakan
POSTdengan badan JSON.
