Công cụ thành viên

Công cụ trang web


programming4:api

Đây là một phiên bản cũ của tài liệu!


Hướng dẫn toàn tập về API của NukeViet 4

Hệ thống API được đưa vào kể từ phiên bản 4.5.00

Dành cho nhà phát triển sử dụng API

Nguyên tắc chung

Thực hiện lệnh POST vào URL <scheme>://<domain>/api.php (ví dụ https://nukeviet.vn/api.php) với đầu vào được mô tả bên dưới, dữ liệu trả về dạng JSON, sử dụng hàm json_decode để chuyển thành array và thao tác.

Các tham số bắt buộc

[
    'apikey' => '...', // Khóa được cung cấp
    'apisecret' => '...', // Mã bí mật được cung cấp
    'action' => 'GetLesson', // Tên API được list bên dưới
    'module' => 'elearning', // Module xử lý, ở đây là elearning, để trống thì là API của hệ thống
]

Các tham số tùy chọn tùy theo từng API cụ thể quy định. Dữ liệu trả về cố định (toàn bộ các API đều sẽ có) như sau

[
    'status' => 'success', // Nếu thành công thì là success, thất bại (có lỗi) thì là error
    'code' => '0000', // Mã lỗi nếu có
    'message' => '' // Thông tin lỗi nếu có
]

Ví dụ

Code sử dụng từ một website bất kỳ

Sử dụng thư viện CURL để gửi truy vấn

$api_remote_url = 'https://nukeviet.vn/api.php';
$agent = 'NukeViet Remote API Lib';
 
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL, $api_remote_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
 
$safe_mode = (ini_get('safe_mode') == '1' || strtolower(ini_get('safe_mode')) == 'on') ? 1 : 0;
$open_basedir = ini_get('open_basedir') ? true : false;
if (!$safe_mode and !$open_basedir) {
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
}
 
$request = [
    // Tham số bắt buộc
    'apikey' => '...',
    'apisecret' => '...',
    'action' => 'CreatArticle',
    'module' => 'news'
];
 
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
 
curl_setopt($ch, CURLOPT_POST, sizeof($request));
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
 
$res = curl_exec($ch);
 
curl_close($ch);
 
$responsive = json_decode($res, true);
 
print_r($responsive);

Code sử dụng từ một website NukeViet

Sử dụng thư viện NV HTTP để truy vấn

$request = [
    // Tham số bắt buộc
    'apikey' => '...',
    'apisecret' => '...',
    'action' => 'CreatArticle',
    'module' => 'news',
];
$request = array_merge($request, $parameters);
 
$NV_Http = new NukeViet\Http\Http($global_config, NV_TEMP_DIR);
 
$args = [
    'headers' => [
        'Referer' => NV_MY_DOMAIN
    ],
    'body' => $request,
    'timeout' => 20
];
$responsive = $NV_Http->post(MARKETING_API_URL, $args);
 
$res = [];
$error = '';
 
if (is_array($responsive) and empty(NukeViet\Http\Http::$error)) {
    $res = !empty($responsive['body']) ? json_decode($responsive['body'], true) : [];
} elseif (!empty(NukeViet\Http\Http::$error) {
    $error = 'Lỗi truy vấn: ' . NukeViet\Http\Http::$error;
} else {
    $error = 'Lỗi khác';
}
 
print_r($error);
print_r($res);

Dành cho nhà phát triển muốn cung cấp API

programming4/api.1616145448.txt.gz · Sửa đổi lần cuối: 2021/03/19 16:17 bởi hoaquynhtim99