API

Dokumentacja API

egito.dev

Dane autoryzacyjne

Aby uzyskać dane autoryzacyjne do integracji przez API nalezy po zalogowaniu do systemu przejść do Ustawienia>Ustawienia główne i w sekcji Integracje i dane wybrać API. Poprzez przycisk Nowy tworzony jest zestaw kluczy API dla kolejnej integracji. Dzieki temu rozdzielona jest autoryzacja dla każdej integracji i zapewniona jest możliwość jej odwołania w dowolnym momencie

Autoryzacja

Autoryzacja poprzez OAUTH2 czyli by uzyskać access_token potrzebne są takie dane jak:

  • EGITO_NAME czyli to co występuje w adresie przed .egito.pl
  • API_ID wygenerowane w konfiguracji API
  • API_SECRET wygenerowane w konfiguracji API
  • EGITO_USERNAME login użytkownika wraz z nazwą aplikacji np. login@firma (uwaga: bez .pl)
  • EGITO_PASSWORD hasło użytkownika, który będzie łączył się przez API

API_TOKEN token oraz API_ID udostępniamy po zgłoszeniu na pomoc@egito.pl, prosimy o przesyłanie przez lub dołączenie w DW administratora danej aplikacji.

Ważne by zdecydować czy api ma logować się jako jeden z obecnych uzytkowników czy osobne login i hasło. Osobnemu użytkownikowi można określić zakres uprawnień by każda integracja API nie mogła być później użyta do np. wykasowania rekordów czy innego nadużycia i wyznaczyć tylko takie funkcje jakie to API ma móc faktycznie realizować.

accesstoken za pomocą POST:

https://EGITO_NAME.egito.pl/oauth/token?grant_type=password&client_id=MY_ID&client_secret=MY_SECRET&password=EGITO_PASSWORD&username=EGITO_USERNAME

Należy w nagłówku zapytania dodać parametr: Content-Type = x-www-form-urlencoded

To zapytanie zwraca access_token:

    {
      "access_token": "a88c5bc3-4404-4d95-b5db-1a840b268ef2",
      "token_type": "bearer",
      "refresh_token": "7c88f185-cf22-4d0f-ba43-e791390fe674",
      "expires_in": 3317,
      "scope": "write read"
    }

Przykład autoryzacji w php:

    <$response = \Httpful\Request::post("https://EGITO_NAME.egito.pl/oauth/token?grant_type=password&client_id=" . API_ID . "&client_secret=" . API_SECRET . "&password=" . EGITO_PASSWORD. "&username=" . EGITO_USERNAME)
       ->addHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
       ->send();

    $access_token = $response->body->access_token;>

Dostępne operacje

Po autoryzacji możliwe są operacje na rekordach z systemu:

  • CREATE- utworzenie nowego rekordu
  • GET - pobranie rekordu/ów
  • UPDATE - aktualizacja danych rekordu
  • LIST- lista rekordów danego typu (i spełniających dodatkowe kryteria)

Przykładowe utworzenie nowego rekordu Lead:

<$access_token = $response->body->access_token;
$response = \Httpful\Request::post("https://EGITO_NAME.egito.pl/services/restapi/json/Lead/create")
    ->body(http_build_query(array(
        'name' => $_POST['name'],
        'surname' => $_POST['surname'],
        'companyName' => $_POST['companyName'],
        'sourceId' => DICTIONARY_ID,
        'mainPhoneNumber.suffix' => $_POST['phone'],
        'mainPhoneNumber.prefix' => '1',
    )))
    ->addHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
    ->addHeader('Authorization', 'Bearer ' . $access_token)
    ->send();

$leadId = $response->body->id;>

Przykładowe URL

Metoda CREATE:

https://EGITO_NAME.egito.pl/services/restapi/json/Lead/create
https://EGITO_NAME.egito.pl/services/restapi/json/Account/create
https://EGITO_NAME.egito.pl/services/restapi/json/Contact/create
https://EGITO_NAME.egito.pl/services/restapi/json/Opportunity/create

Metoda GET:

https://EGITO_NAME.egito.pl/services/restapi/json/Lead/get
https://EGITO_NAME.egito.pl/services/restapi/json/Account/get
https://EGITO_NAME.egito.pl/services/restapi/json/Contact/get
https://EGITO_NAME.egito.pl/services/restapi/json/Opportunity/get

Metoda UPDATE:

https://EGITO_NAME.egito.pl/services/restapi/json/Lead/update
https://EGITO_NAME.egito.pl/services/restapi/json/Account/update
https://EGITO_NAME.egito.pl/services/restapi/json/Contact/update
https://EGITO_NAME.egito.pl/services/restapi/json/Opportunity/update

Metoda LIST:

https://EGITO_NAME.egito.pl/services/restapi/json/Lead/list
https://EGITO_NAME.egito.pl/services/restapi/json/Account/list
https://EGITO_NAME.egito.pl/services/restapi/json/Contact/list
https://EGITO_NAME.egito.pl/services/restapi/json/Opportunity/list

Słowniki

W formularzach (i w bazie danych) w Egito używane są id słowników dla zapisania wartości list wyboru. Aby poznać jakie wartości lista może przyjąc (i jakie należy wysyłać w zapytaniu) należy znając nazwę pola wywołać zapytanie: https://EGITO_NAME.egito.pl/services/restapi/json/SelectDictionary/list?type=TYP_SLOWNIKA gdzie TYP_SLOWNIKA to jego kod np industry, lead.source lub relationshipType.

Do pobrania

Zamieszczona paczka ZIP zawiera przykłady zastosowania biblioteki httpful w PHP do autoryzacji oraz tworzenia rekordów (Lead, Kontrehent z Kontaktem, Oferta dla kontrahenta).

POBIERZ plik z przykładami w ZIP