Dostęp do API

Dostęp do API

ℹ️
Do emisji oraz wysyłania eventów o interakcjach (kliki, odsłony) oraz atrybucji (wishlista, koszyk, zakup) nie jest wymagana autoryzacja.

Podzbiór API AdsHero jest publicznie dostępny — dotyczy to przede wszystkim emisji oraz wysyłki eventów o interakcjach i atrybucji. Pozostałe API są zabezpieczone i wymagają uwierzytelniania za pomocą tokenu.

Jeśli API wymaga uwierzytelniania, to w dokumentacji oznaczamy to w poniższy sposób:

🛡
To API jest zabezpieczone — w requestach w nagłówku Authorization należy przekazać token dostępowy.

Oznacza to, że do każdego requestu należy dołączyć header Authorization z wartością Bearer {access_token} (część {access_token} należy podmienić na rzeczywisty token uzyskany w sposób opisany poniżej).

Uzyskanie tokenu

Udostępniamy standardowy endpoint OIDC (OpenID Connect) pod adresem:

https://api.adshero.io/v1/oauth/token

Uwierzytelnianie odbywa się za pomocą “password grant”. W celu uzyskania username oraz password (i zarazem dostępu do API) prosimy o kontakt z nami. API nie akceptuje danych uwierzytelniających zwykłych użytkowników panelu.

Przykładowy request:

POST https://api.adshero.io/v1/oauth/token HTTP/2
Content-Type: application/x-www-form-urlencoded

grant_type = password &
client_id = public-api &
username = username &
password = password

Parametry usernamepassword nie są wypełnione.

curl --location --request POST 'https://api.adshero.io/v1/oauth/token' \
     --header 'Content-Type: application/x-www-form-urlencoded' \ 
     --data-urlencode 'grant_type=password' \ 
     --data-urlencode 'client_id=public-api' \ 
     --data-urlencode 'username={username}' \ 
     --data-urlencode 'password={password}'

Parametry usernamepassword nie są wypełnione.

W odpowiedzi zwracany jest JSON postaci:

HTTP/2 200 OK
Content-Type: application/json

{ 
  "access_token": "string", 
  "expires_in": "int", 
  "refresh_expires_in": "int", 
  "refresh_token": "string", 
  "token_type": "string", 
  "not-before-policy": "int", 
  "session_state": "string", 
  "scope": "string"
}

Pole access_token należy przekazywać jako nagłówek Authorization:

Authorization: Bearer {access_token}

Natomiast expires_in mówi, po ilu sekundach token przestanie być ważny (akceptowany przez API). Po upływie tego czasu należy pobrać nowy token.