API
Dokumentacja API
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.plAPI_ID
wygenerowane w konfiguracji APIAPI_SECRET
wygenerowane w konfiguracji APIEGITO_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).