Mokapen API dokumentation

Autentisering

Alla API-förfrågningar kräver en bäraråtkomsttoken. Hur du får token beror på typen av ansökan (offentlig eller privat).

Header Bearer token

Inkludera åtkomsttoken i varje API-begäran:

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

App offentlig — OAuth 2.0-auktoriseringskod

Offentliga appar använder standardbeviljande av OAuth 2.0-auktoriseringskod.

Begäran om tillstånd

Omdirigera användaren till auktoriseringsslutpunkten:

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 auktoriseringen väljer användaren den organisation som ska ge åtkomst till. Den utfärdade åtkomsttoken är knuten till den organisationen.

Exempel på auktoriseringsbegäran (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);

Byt ut auktoriseringskod för tokens

Efter godkännande omdirigerar Mokapen till din redirect_uri med parametern code. Byt ut det mot 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

Exempel på symbolsvar

{
  "token_type": "Bearer",
  "expires_in": 31536000,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "refresh_token": "def50200...",
  "organization_id": 849,
  "organization_name": "Your Organization"
}
Fältet organisation_id i svaret återspeglar den organisation som valts av användaren vid auktorisering. Använd samma ID i API-URL:er (se Organisationer).

Uppdatera token

När åtkomsttoken löper ut, begär en ny med uppdateringstoken:

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

Privata appar — Klientuppgifter

Privata appar kräver inte OAuth-omdirigeringar. Från utvecklarinstrumentpanelen, öppna programmet, gå till Inloggningsuppgifter och klicka på Generera token.

Token skapas med anslaget client_credentials och är länkat till den organisation som är aktiv i sessionen. Förvara det säkert och dela det inte 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
Passera alltid organization_id när du begär en privat apptoken. Organisations-ID:t sparas i token och verifieras vid efterföljande API-anrop.

Första API-begäran

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

Behöver du hjälp?