Всички заявки за API изискват токен за достъп на носител. Как ще получите токена зависи от вида на приложението (публично или частно).
Включете токена за достъп във всяка заявка за API:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Accept: application/json
Публичните приложения използват стандартното предоставяне на код за оторизация OAuth 2.0.
Пренасочете потребителя към крайната точка за оторизация:
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
$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);
След одобрение Mokapen пренасочва към вашия redirect_uri с параметъра code. Разменете го за токени:
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_type": "Bearer",
"expires_in": 31536000,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
"refresh_token": "def50200...",
"organization_id": 849,
"organization_name": "Your Organization"
}
organization_id в отговора отразява организацията, избрана от потребителя при оторизация. Използвайте същия идентификатор в URL адресите на API (вижте Организации).Когато токенът за достъп изтече, поискайте нов с токена за опресняване:
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
Частните приложения не изискват OAuth пренасочвания. От таблото за управление на разработчици отворете приложението, отидете на Credentials и щракнете върху Generate Token.
Токенът е създаден с client_credentials грант и е обвързан с организацията, активна в сесията. Съхранявайте го безопасно и не го споделяйте публично.
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
organization_id, когато изисквате токен за лично приложение. Идентификационният номер на организацията се запазва в токена и се проверява при последващи извиквания на API.$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);
имате нужда от помощ