API Người dùng
Tài liệu về cách sử dụng API người dùng thông qua OAuth2 trong SePay.
Giới thiệu
API người dùng của SePay cho phép bạn truy cập thông tin về người dùng hiện tại và công ty của họ. Bạn có thể lấy thông tin cá nhân của người dùng và thông tin chi tiết về công ty mà họ thuộc về.
Để sử dụng API này, bạn cần có quyền
profile
(đối với thông tin người dùng) hoặc company
(đối với thông tin công ty) trong phạm vi (scope) của Access Token.
Các Endpoints
API người dùng cung cấp các endpoints sau:
Method | Endpoint | Mô tả |
---|---|---|
GET | /api/v1/me |
Lấy thông tin của người dùng hiện tại |
Lấy thông tin người dùng
GET /api/v1/me
Endpoint này trả về thông tin của người dùng hiện tại đã được xác thực qua OAuth2.
Quyền yêu cầu
- Scope:
profile
Yêu cầu
GET /api/v1/me
Authorization: Bearer {YOUR_ACCESS_TOKEN}
Phản hồi
{
"status": "success",
"data": {
"id": 1234,
"first_name": "Nguyễn",
"last_name": "Văn A",
"email": "nguyen.van.a@example.com",
"phone": "0901234567",
"avatar": "https://www.gravatar.com/avatar/0bc83cb571cd1c50ba6f3e8a78ef1346"
}
}
Giải thích các trường dữ liệu
Trường | Kiểu | Mô tả |
---|---|---|
id |
integer | ID của người dùng |
first_name |
string | Tên của người dùng |
last_name |
string | Họ của người dùng |
email |
string | Địa chỉ email của người dùng |
phone |
string | Số điện thoại của người dùng |
avatar |
string | URL của avatar được lấy từ Gravatar |
Ví dụ sử dụng
Dưới đây là ví dụ cách lấy thông tin người dùng hiện tại thông qua API:
# Lấy thông tin người dùng hiện tại
curl -X GET "https://my.sepay.vn/api/v1/me" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
<?php
$accessToken = 'YOUR_ACCESS_TOKEN';
$apiUrl = 'https://my.sepay.vn/api/v1/me';
// Hàm lấy thông tin người dùng hiện tại
function getCurrentUser($apiUrl, $accessToken) {
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $accessToken
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
return json_decode($response, true);
} else {
return ['error' => $httpCode, 'response' => $response];
}
}
// Sử dụng
$user = getCurrentUser($apiUrl, $accessToken);
// Hiển thị thông tin người dùng
if (isset($user['data'])) {
$userData = $user['data'];
echo "ID: " . $userData['id'] . "\n";
echo "Họ tên: " . $userData['last_name'] . " " . $userData['first_name'] . "\n";
echo "Email: " . $userData['email'] . "\n";
echo "Điện thoại: " . $userData['phone'] . "\n";
echo "Avatar: " . $userData['avatar'] . "\n";
} else {
echo "Lỗi: " . json_encode($user) . "\n";
}
const accessToken = 'YOUR_ACCESS_TOKEN';
// Hàm lấy thông tin người dùng hiện tại
async function getCurrentUser() {
try {
const response = await fetch('https://my.sepay.vn/api/v1/me', {
method: 'GET',
headers: {
'Authorization': `Bearer ${accessToken}`
}
});
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching user data:', error.message);
throw error;
}
}
// Sử dụng
async function displayUserInfo() {
try {
const userData = await getCurrentUser();
if (userData.status === 'success' && userData.data) {
const user = userData.data;
console.log('Thông tin người dùng:');
console.log('--------------------------');
console.log(`ID: ${user.id}`);
console.log(`Họ tên: ${user.last_name} ${user.first_name}`);
console.log(`Email: ${user.email}`);
console.log(`Điện thoại: ${user.phone}`);
console.log(`Avatar URL: ${user.avatar}`);
} else {
console.error('Không thể lấy thông tin người dùng:', userData);
}
} catch (error) {
console.error('Lỗi:', error);
}
}
displayUserInfo();
Mã lỗi
Dưới đây là các mã lỗi có thể gặp khi sử dụng API người dùng:
Mã HTTP | Mã lỗi | Mô tả |
---|---|---|
401 | unauthorized |
Token không hợp lệ hoặc hết hạn |
403 | forbidden |
Không có quyền truy cập vào tài nguyên này |