Mokapen API dokumentation

Autentificering

Alle API-anmodninger kræver et bærer-adgangstoken. Hvordan du får tokenet afhænger af typen af ​​ansøgning (offentlig eller privat).

Hovedbærer-token

Inkluder adgangstokenet i hver API-anmodning:

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

App offentlig — OAuth 2.0-autorisationskode

Offentlige apps bruger standard OAuth 2.0-godkendelseskodetildelingen.

Anmodning om autorisation

Omdiriger brugeren til godkendelsesslutpunktet:

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
Under godkendelsen vælger brugeren den organisation, der skal gives adgang til. Det udstedte adgangstoken er knyttet til den pågældende organisation.

Eksempel på anmodning om godkendelse (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);

Udskift autorisationskode for tokens

Efter godkendelse omdirigerer Mokapen til din redirect_uri med parameteren code. Byt det til tokens:

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

Eksempel på symbolsvar

{
  "token_type": "Bearer",
  "expires_in": 31536000,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "refresh_token": "def50200...",
  "organization_id": 849,
  "organization_name": "Your Organization"
}
Feltet organization_id i svaret afspejler den organisation, som brugeren har valgt i godkendelsen. Brug det samme id i API-URL'er (se Organisationer).

Opdater token

Når adgangstokenet udløber, anmod om et nyt med opdateringstokenet:

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

Private apps — Klientlegitimationsoplysninger

Private apps kræver ikke OAuth-omdirigeringer. Åbn applikationen fra udviklerdashboardet, gå til Credentials og klik på Generer Token.

Tokenet oprettes med client_credentials-bevillingen og er knyttet til den organisation, der er aktiv i sessionen. Opbevar det sikkert og del det ikke offentligt.

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
Bestå altid organization_id, når du anmoder om et privat apptoken. Organisations-id'et gemmes i tokenet og verificeres ved efterfølgende API-kald.

Første API-anmodning

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

Har du brug for hjælp?