OAuth 2.0 Integratie met Bullhorn

by Maurits, Eigenaar Seerp

De Bullhorn REST API biedt partners een eenvoudige maar krachtige manier om interactie te hebben met het Bullhorn-systeem. Deze API maakt gebruik van HTTP-verzoeken en standaard datastructuren, waardoor het toegankelijk is vanuit veel programmeertalen en bijzonder geschikt is voor mobiele applicaties en toepassingen die gebruikmaken van de nieuwste webtechnologieën. In deze blog bespreken we hoe je kunt starten met de Bullhorn REST API, inclusief de OAuth 2.0 autorisatieprocedure en het gebruik van access tokens om veilige API-aanroepen te doen.

Toegang tot de Bullhorn REST API

Bullhorn gebruikt OAuth 2.0 als autorisatiemechanisme voor de REST API. Om toegang te krijgen tot de API, moeten Bullhorn-klanten OAuth-sleutels verkrijgen door een supportticket aan te maken via het Bullhorn Resource Center. Een geldige OAuth 2.0 API-sleutel bevat de volgende gegevens:

  • redirect_uri: De URI van de locatie van je applicatie die aan Bullhorn is opgegeven bij registratie.
  • client_id: Een door Bullhorn gegenereerde ID die jouw account identificeert.
  • client_secret: Het wachtwoord voor je applicatie om in het systeem te authentiseren.

Bepaal het Correcte Datacenter voor je Gebruiker

Bij gebruik van de Bullhorn REST API is het belangrijk om het juiste datacenter te bepalen voor je gebruiker. Dit kan worden gedaan door een GET-verzoek te sturen naar rest-services/loginInfo met de API-gebruikersnaam. Als je de correcte URL’s niet gebruikt, krijg je een 307-redirect naar het juiste datacenter. Zorg ervoor dat je code deze redirect kan verwerken. De API-gebruikersnaam is informatie die je van Bullhorn ontvangt nadat je bent aangesloten.

GET https://rest.bullhornstaffing.com/rest-services/loginInfo?username={API_Username}

Verkrijgen van een Autorisatiecode

Voordat je toegang kunt krijgen tot de API, moet je een autorisatiecode verkrijgen door de volgende URL te gebruiken, waarbij je de daadwerkelijke waarden voor de placeholders vervangt:

https://auth-{value_from_loginInfo}.bullhornstaffing.com/oauth/authorize?client_id={client_id}&response_type=code&action=Login&username={username}&password={password}&redirect_uri={optional redirect_uri}&state={recommended state value}

Stappen voor het Verkrijgen van een Autorisatiecode:

  1. De gebruiker voert een geldige Bullhorn gebruikersnaam/wachtwoord combinatie in en klikt op de Login-knop.
  2. Een servicevoorwaardenpagina wordt weergegeven.
  3. De gebruiker klikt op de Akkoord-knop om de voorwaarden te accepteren.
  4. De pagina wordt omgeleid naar de redirect_uri met een code-parameter in de URL. Deze code is de autorisatiecode die nodig is om een toegangstoken te verkrijgen.

Verkrijgen van een Toegangstoken

Je applicatie gebruikt de autorisatiecode om een toegangstoken te verkrijgen door een POST-verzoek te doen naar de volgende URL:

POST https://auth-{value_from_loginInfo}.bullhornstaffing.com/oauth/token?grant_type=authorization_code&code={auth_code}&client_id={client_id}&client_secret={client_secret}&redirect_uri={optional redirect_uri}

De respons bevat een toegangstoken dat je gebruikt in REST API /login-aanvragen om een Bullhorn-sessiesleutel en een basis REST URL te verkrijgen. Het toegangstoken is 10 minuten geldig.

Gebruik van een Refresh Token

Als Bullhorn je de mogelijkheid heeft gegeven om refresh tokens te genereren, bevat de respons ook een refresh token. Wanneer de Bullhorn-sessie verloopt, gebruik je een refresh token om een nieuw toegangstoken te verkrijgen zonder opnieuw te hoeven autoriseren. Het refresh token heeft geen vervaldatum, maar verloopt wanneer een nieuw toegangstoken en refresh token worden gegenereerd.

Inloggen bij de REST API

De eerste aanroep die je maakt met de Bullhorn REST API is een login-aanroep naar de rest-services server voor het datacenter. Deze aanroep retourneert een sessiesleutel die je kunt gebruiken voor volgende verzoeken.

POST https://rest-{value_from_loginInfo}.bullhornstaffing.com/rest-services/login?version=*&access_token={xxxxxxxx}

Een succesvolle login-respons ziet er als volgt uit:

{
  "BhRestToken": "1234_5945926_32b73003-3b3a-4ebf-9a87-5894201b0ac3",
  "restUrl": "https://rest{swimlane#}.bullhornstaffing.com/rest-services/{corpToken}/"
}

Deze login-respons bevat een sessiesleutel genaamd BhRestToken en de basis URL voor volgende REST-aanroepen. Gebruik de sessiesleutel voor alle daaropvolgende verzoeken totdat de sessie verloopt.

REST Aanroepen Maken

Na het verkrijgen van een sessiesleutel kun je REST-aanroepen doen om gegevens op te halen of CRUD-operaties uit te voeren op de Bullhorn-server. Bijvoorbeeld, een verzoek om een specifieke kandidaat op te halen:

GET https://rest{swimlane#}.bullhornstaffing.com/rest-services/{corpToken}/entity/Candidate/{id}?BhRestToken={session_key}&fields=firstName,lastName,address

Aanmaken van een Entity

Een REST-aanroep om een nieuwe entiteit aan te maken lijkt op een GET-verzoek, maar is een HTTP POST en bevat veldwaarden voor de nieuwe entiteit in de body van het verzoek.

PUT https://rest{swimlane#}.bullhornstaffing.com/rest-services/{corpToken}/entity/Candidate?BhRestToken={session_key}

Conclusie

De Bullhorn REST API biedt een robuuste manier om met het Bullhorn-systeem te communiceren, en met behulp van OAuth 2.0 kan dit veilig en efficiënt gebeuren. Door de bovenstaande stappen te volgen, kun je succesvol integreren met Bullhorn en je recruitmentprocessen verbeteren.

Voor meer informatie over het werken met de Bullhorn REST API en OAuth 2.0, bezoek de Bullhorn GitHub. Ook deze pagina is erg hulpvol

Meer blogs

Een Succesvolle Vacaturewebsite Bouwen: Tips en Tricks met Bullhorn

Ontdek praktische tips voor het bouwen van een effectieve vacaturewebsite die naadloos integreert met Bullhorn. Leer meer over design, UX-optimalisatie, technische integraties en SEO om jouw recruitmentstrategie te verbeteren.

Lees meer

Stap-voor-stap: Bullhorn Integratie voor Vacaturewebsites

Leer stap voor stap hoe je Bullhorn integreert met vacaturewebsites. Ontdek de benodigde stappen, technische tips, en oplossingen voor veelvoorkomende uitdagingen om een soepele integratie te realiseren en recruitmentprocessen te optimaliseren.

Lees meer

Vertel ons over jouw project.

We zijn altijd op zoek naar nieuwe uitdagingen. Neem contact met ons op en we zullen zo snel mogelijk reageren.