Hejto REST API
Buduj aplikacje i dołącz do grona programistów, którzy rozwijają serwis Hejto. Zasoby API Hejto
odzwierciedlają funkcjonalności serwisu.
Dzięki API możesz zautomatyzować działania dla własnego konta lub tworzyć aplikacje dla użytkowników.
Możesz wykorzystać Hejto REST API aby:
- Odczytywać informacje o zalogowanym użytkowniku
- Pobierać, publikować, edytować i usuwać wpisy oraz komentarze
- Doceniać wpisy i komentarze
- Dodawać wpisy do ulubionych
- Odczytywać informacje o tagach, obserwować je lub blokować
- Odczytywać informacje o użytkownikach, obserwować ich lub blokować
- Odczytywać informacje o społecznościach, dołączać do nich lub je blokować
- Odczytywać i wysyłać prywatne wiadomości
- I wiele innych funkcjonalności dostępnych na Hejto.pl
Portal Hejto.pl udostępnia API stworzone w oparciu o architekturę REST. Wykorzystuje do tego celu protokół HTTP wraz z jego metodami: GET, POST, PUT, PATCH, DELETE.
Dostęp do poszczególnych zasobów następuje poprzez wywołanie wybranej metody HTTP na adres:
https://api.hejto.pl.
Wszystkie dane
wysyłane są i odbierane z API w formacie JSON.
Dostęp do API
Aby uzyskać dostęp do API, musisz zarejestrować aplikację, uzyskasz w ten sposób klucze niezbędne do komunikacji z interfejsem.
1. Aby zarejestrować aplikację przejdź do formularza. Zaloguj się swoimi danymi użytkownika hejto.pl
2. Następnie uzupełnij poniższe pola:
- Nazwa aplikacji (wymagane) - Nadaj nazwę swojej aplikacji. Pamiętaj, że po utworzeniu nie możesz jej zmienić.
- Opis aplikacji (wymagane) - Opisz do czego będzie służyć stworzona przez Ciebie aplikacja. Postaraj się aby opis był szczegółowy.
- Sposób autoryzacji (wymagane) - Wybierz sposób autoryzacji użytkownika swojej aplikacji. Jeśli tworzysz aplikację do której będzie mieć dostęp jedynie Twoje konto użytkownika, wybierz opcję Client Credentials. Jeśli chcesz stworzyć aplikację, do której będą mogli logować się inni użytkownicy wybierz opcję Authorization Code.
- Adresy URI do przekierowania (wymagane dla sposobu Authorization Code) - Podaj wszystkie adresy, na które chcesz przekierowywać użytkownika po poprawnym zalogowaniu i zautoryzowaniu się w Twojej aplikacji.
- Uprawnienia - Wybierz wszystkie uprawnienia, z których chcesz korzystać w swojej aplikacji. W przypadku aplikacji korzystającej ze sposobu uwierzytelniania Authorization Code pełna lista żądanych uprawnień zostanie zaprezentowana użytkownikowi na ekranie zgody na przetwarzanie danych przez aplikację.
3. Kliknij przycisk Dodaj.
4. Aplikacji zostanie przypisany status Development, co oznacza, że będzie ona funkcjonować w trybie developerskim. Będzie posiadać limity wykorzystania. W przypadku aplikacji korzystającej ze sposobu Authorization Code jedynym użytkownikiem, który będzie mógł się w niej uwierzytelnić będziesz Ty sam.
5. Kiedy ukończysz pracę nad aplikacją i będziesz chciał ją opublikować dla użytkowników, prosimy o wysłanie email na adres [email protected]. Wówczas będziemy mogli rozpocząć proces weryfikacji aplikacji oraz wymaganych uprawnień.
6. Po zaakceptowaniu przez nasz zespół Twojej aplikacji, zyska ona status Opublikowana, co oznacza, że będą mogli z niej korzystać inni użytkownicy hejto.pl
Autoryzacja
W ramach REST API udostępniliśmy dwa typy autoryzacji:
-
Authorization Code - najpopularniejsza dla standardu OAuth. Jest ona wykorzystywana w sytuacjach, w których klient (aplikacja) potrzebuje wykonywać operacje w imieniu innego użytkownika. W takim przypadku niezbędne staje się otrzymanie zgody od użytkownika na takie działanie. W tym celu użytkownik zostaje przekierowany do formularza celem zalogowania się oraz wyrażenia zgody na wykorzystanie jego danych. Po poprawnym uwierzytelnieniu i przydzieleniu dostępu zwrócony zostaje kod autoryzacyjny, który następnie należy wymienić na token dostępu dla zalogowanego użytkownika.
Adresy OAuth 2.0:
- Authorization: https://auth.hejto.pl/authorize
- Token: https://auth.hejto.pl/token
Przykładowy przebieg autoryzacji sposobem Authorization Code:
-
Przygotuj link autoryzacyjny, a następnie przekieruj pod niego użytkownika którego chcesz uwierzytelnić, np. przy pomocy przycisku Zaloguj się przez Hejto.
https://auth.hejto.pl/authorize?response_type=code&client_id={client_id}&redirect_uri={redirect_uri}&scope={scope1 scope2 scope3}
-
Po poprawnym uwierzytelnieniu i wyrażeniu zgody użytkownik zostanie przekierowany na {redirect_uri} z parametrem code
{redirect_uri}/?code={authorization_code}
-
W kolejnym kroku wymień code na token użytkownika. Aby to zrobić wyśli żądanie metodą POST pod adres https://auth.hejto.pl/token dodając nagłówek Content-type: application/json a w żądaniu prześlij nastąpujące dane w formacie JSON:
POST https://auth.hejto.pl/token { "client_id": "{client_id}", "client_secret": "{client_secret}", "grant_type": "authorization_code", "redirect_uri": "{redirect_uri}", "code": "{authorization_code}" }
-
W odpowiedzi uzyskasz token dostępowy użytkownika oraz pozostałe informacje.
HTTP 200 OK { "token_type": "Bearer", "expires_in": 86400, "access_token": "{access_token}" }
-
Aby wykonać żądanie w imieniu zalogowanego użytkownika, dołącz uzyskany access_token w nagłówku Authorization: Bearer {access_token} do żądania do serwera api.hejto.pl.
-
Client Credentials - ten typ autoryzacji jest przydatny, gdy nie potrzebujemy wykonywać operacji w imieniu innego użytkownika, a jedynie w imieniu własnego konta. Możesz wykorzystać ten typ autoryzacji do zautomatyzowania operacji na swoim własnym koncie.
Przykładowy przebieg autoryzacji sposobem Authorization Code:
-
Aby uzyskać token dostępu wyśli żądanie metodą POST pod adres https://auth.hejto.pl/token dodając nagłówek Content-type: application/json a w żądaniu prześlij nastąpujące dane w formacie JSON:
POST https://auth.hejto.pl/token { "client_id": "{client_id}", "client_secret": "{client_secret}", "grant_type": "client_credentials", }
-
W odpowiedzi uzyskasz token dostępowy użytkownika oraz pozostałe informacje.
HTTP 200 OK { "token_type": "Bearer", "expires_in": 86400, "access_token": "{access_token}" }
-
Aby wykonać żądanie w swoim imieniu, dołącz uzyskany access_token w nagłówku Authorization: Bearer {access_token} do żądania do serwera api.hejto.pl.
-