Semua permintaan API memerlukan token akses Pembawa. Cara Anda mendapatkan token bergantung pada jenis aplikasi (publik atau pribadi).
Sertakan token akses di setiap permintaan API:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Accept: application/json
Aplikasi publik menggunakan pemberian kode otorisasi OAuth 2.0 standar.
Arahkan pengguna ke titik akhir otorisasi:
GET https://mokapen.com/oauth/authorize
Query parameters:
client_id (required) Your Client ID
redirect_uri (required) Must match a registered redirect URL
response_type (required) Must be "code"
scope (required) Space-separated scopes, e.g. tasks.read tasks.write
state (required) Random value (min. 16 chars) to prevent CSRF
$params = [
'client_id' => 'YOUR_CLIENT_ID',
'redirect_uri' => 'https://example.com/oauth/callback',
'response_type' => 'code',
'scope' => 'tasks.read tasks.write',
'state' => bin2hex(random_bytes(8)),
];
$url = 'https://mokapen.com/oauth/authorize?' . http_build_query($params);
header('Location: ' . $url);
Setelah disetujui, Mokapen mengalihkan ke redirect_uri Anda dengan parameter code. Tukarkan dengan token:
POST https://mokapen.com/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
&redirect_uri=https://example.com/oauth/callback
&code=AUTHORIZATION_CODE_FROM_CALLBACK
{
"token_type": "Bearer",
"expires_in": 31536000,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
"refresh_token": "def50200...",
"organization_id": 849,
"organization_name": "Your Organization"
}
organization_id dalam respons mencerminkan organisasi yang dipilih oleh pengguna dalam otorisasi. Gunakan ID yang sama di URL API (lihat Organisasi).Ketika token akses habis masa berlakunya, mintalah yang baru dengan token penyegaran:
POST https://mokapen.com/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
&refresh_token=YOUR_REFRESH_TOKEN
Aplikasi pribadi tidak memerlukan pengalihan OAuth. Dari dasbor Pengembang, buka aplikasi, buka Credentials dan klik Generate Token.
Token dibuat dengan hibah client_credentials dan ditautkan ke organisasi yang aktif dalam sesi tersebut. Simpan dengan aman dan jangan membagikannya kepada publik.
POST https://mokapen.com/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
&scope=tasks.read tasks.write contacts.read
&organization_id=849
organization_id saat meminta token aplikasi pribadi. ID organisasi disimpan dalam token dan diverifikasi pada panggilan API berikutnya.$url = 'https://mokapen.com/api/v1/849/contacts';
$token = 'YOUR_ACCESS_TOKEN';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Accept: application/json',
],
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
Apakah Anda memerlukan bantuan?