Mokapen API dokumentacija

Autentifikacija

Svi API zahtjevi zahtijevaju nositeljski pristupni token. Kako ćete dobiti token ovisi o vrsti aplikacije (javna ili privatna).

Token nositelja zaglavlja

Uključite pristupni token u svaki API zahtjev:

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

Javna aplikacija — autorizacijski kod OAuth 2.0

Javne aplikacije koriste standardno odobrenje autorizacijskog koda OAuth 2.0.

Zahtjev za autorizaciju

Preusmjerite korisnika na krajnju točku autorizacije:

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
Tijekom autorizacije korisnik odabire organizaciju kojoj će dodijeliti pristup. Izdani pristupni token povezan je s tom organizacijom.

Primjer zahtjeva za autorizaciju (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);

Zamijenite autorizacijski kod za tokene

Nakon odobrenja, Mokapen preusmjerava na vaš redirect_uri s parametrom code. Zamijenite ga za tokene:

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

Primjer odgovora tokena

{
  "token_type": "Bearer",
  "expires_in": 31536000,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "refresh_token": "def50200...",
  "organization_id": 849,
  "organization_name": "Your Organization"
}
Polje organization_id u odgovoru odražava organizaciju koju je odabrao korisnik u autorizaciji. Koristite isti ID u API URL-ovima (pogledajte Organizacije).

Osvježi token

Kada pristupni token istekne, zatražite novi s tokenom za osvježavanje:

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

Privatne aplikacije — vjerodajnice klijenta

Privatne aplikacije ne zahtijevaju OAuth preusmjeravanja. Na nadzornoj ploči za razvojne programere otvorite aplikaciju, idite na Credentials i kliknite Generiraj token.

Token se stvara s dodijelom client_credentials i povezuje se s organizacijom aktivnom u sesiji. Čuvajte ga na sigurnom i nemojte ga javno dijeliti.

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
Uvijek proslijedite organization_id kada tražite token privatne aplikacije. ID organizacije sprema se u token i provjerava na sljedećim API pozivima.

Prvi API zahtjev

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

Trebate li pomoć?