Mokapen API -dokumentaatio

Todennus

All API requests require a Bearer access token. Tokenin saaminen riippuu sovelluksen tyypistä (julkinen tai yksityinen).

Otsikon kantajan tunnus

Sisällytä käyttöoikeustunnus jokaiseen API-pyyntöön:

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

Sovellus julkinen — OAuth 2.0 -valtuutuskoodi

Julkiset sovellukset käyttävät normaalia OAuth 2.0 -valtuutuskoodia.

Valtuutuspyyntö

Ohjaa käyttäjä valtuutuksen päätepisteeseen:

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
Käyttäjä valitsee valtuutuksen aikana organisaation, jolle käyttöoikeudet myönnetään. Myönnetty käyttöoikeustunnus on sidottu kyseiseen organisaatioon.

Esimerkki valtuutuspyynnöstä (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);

Vaihda valtuutuskoodi tokeneille

Hyväksynnän jälkeen Mokapen uudelleenohjaa osoitteeseen redirect_uri parametrilla code. Vaihda se tokeneihin:

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-vastausesimerkki

{
  "token_type": "Bearer",
  "expires_in": 31536000,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "refresh_token": "def50200...",
  "organization_id": 849,
  "organization_name": "Your Organization"
}
Vastauksen organization_id-kenttä kuvastaa käyttäjän valtuutuksessa valitsemaa organisaatiota. Käytä samaa tunnusta API-URL-osoitteissa (katso Organisaatiot).

Päivitä tunnus

Kun käyttöoikeus vanhenee, pyydä uusi virkistystunnuksella:

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

Yksityiset sovellukset — Asiakkaan kirjautumistiedot

Yksityiset sovellukset eivät vaadi OAuth-uudelleenohjauksia. Avaa sovellus kehittäjien hallintapaneelista, siirry kohtaan Credentials ja napsauta Generate Token.

Tunnus luodaan client_credentials-avustuksen avulla ja on sidottu istunnossa aktiiviseen organisaatioon. Säilytä sitä turvallisesti äläkä jaa sitä julkisesti.

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
Ohita aina organization_id, kun pyydät yksityistä sovellustunnusta. Organisaation tunnus tallennetaan tunnukseen ja vahvistetaan myöhemmissä API-kutsuissa.

Ensimmäinen API-pyyntö

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

Tarvitsetko apua?