Dokumentasi API Mokapen

Otentikasi

Semua permintaan API memerlukan token akses Pembawa. Cara Anda mendapatkan token bergantung pada jenis aplikasi (publik atau pribadi).

Token Pembawa Tajuk

Sertakan token akses di setiap permintaan API:

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Accept: application/json

Aplikasi publik — kode otorisasi OAuth 2.0

Aplikasi publik menggunakan pemberian kode otorisasi OAuth 2.0 standar.

Permintaan otorisasi

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
Selama otorisasi, pengguna memilih organisasi yang akan diberi akses. Token akses yang dikeluarkan terkait dengan organisasi tersebut.

Contoh permintaan otorisasi (PHP)

$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);

Tukarkan kode otorisasi untuk token

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

Contoh respons token

{
  "token_type": "Bearer",
  "expires_in": 31536000,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "refresh_token": "def50200...",
  "organization_id": 849,
  "organization_name": "Your Organization"
}
Bidang organization_id dalam respons mencerminkan organisasi yang dipilih oleh pengguna dalam otorisasi. Gunakan ID yang sama di URL API (lihat Organisasi).

Segarkan token

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 — Kredensial klien

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
Selalu berikan organization_id saat meminta token aplikasi pribadi. ID organisasi disimpan dalam token dan diverifikasi pada panggilan API berikutnya.

Permintaan API pertama

$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?