JobTech Development forum

Anropa API i PHP

Hej! Jag är en nybörjarkodare som lär mig genom guider, men har uppenbarligen mycket kvar att lära. Är det någon som kan se varför jag med denna kod (har tagit bort api-nyckeln ur detta exempel) inte lyckas visa resultatet:

function doaf_get_send_data() {
	
    
    $curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://jobsearch.api.jobtechdev.se/search?municipality=%C3%B6rebro&offset=0&limit=10',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'api-key:',
    'Cookie:'
  ),
));

	$response = curl_exec($curl);
	$err = curl_error($curl);
	
	curl_close($curl);

	if ($err) {
		if ($debug) echo "cURL Error #:" . $err;
		else echo "Oops, något gick fel. Vänligen försök igen.";
	} else {
		$jsonObj = json_decode($response, true);

		$newestJobsFirst = array($jsonObj->results);
		
		$html.= "<div class='all-jobs-wrapper'>";
		
	foreach($newestJobsFirst as $showObj) {
	
		$html.= "<div class='job-ad-wrapper'>";
		$html.= "<div class='job-ad-title'>" . $showObj->headline . "</div>";
		$html.= "<div class='job-ad-municipality'>" . $showObj->municipality . "</div>";
		$html.= "<div class='job-ad-expires'>" . $showObj->application_deadline . "</div>";
		$html.= "<div class='job-ad-link'> Länk:" . $showObj->webpage_url . "</div>";
		$html.= "</div>";
	}
		
		$html.= "</div>";
		
	echo $html;
		
}}

Hej!
Jag har inte felsökt PHP-koden men om vi utgår från att den kommer från ett fungerande exempel så borde den fungera om du ändrar sökningen. Det som är fel nu är att municipality inte lyder enligt kravet för det fältet:

“One or more municipality codes, code according to the taxonomy”

Du kan istället pröva att fritextsöka på Örebro genom att byta ut URL’en mot denna
https://jobsearch.api.jobtechdev.se/search?q=%C3%96rebro&offset=0&limit=10

För att hitta de efterfrågade koderna, så kallade concept_id’s använder du taxonomi-API’et eller så kan du plocka upp något som intresserar dej i själva annonsdatan om du experimenterar lite i Swagger (webbgränssnitt i browsern ) för jobsearch https://jobsearch.api.jobtechdev.se.

Läs mer om hur du kan använda taxonomi-API’et här:

Tack för svar! Jag har ändrat till att istället visa resultat baserat på “employer” och nu lyckats hämta headline, application_deadline och webpage_url.

Dock är det fortfarande två saker jag inte lyckas med:

  1. Få in city alternativt municipality - vilken variabel gäller för dessa? Nedanstående kod fungerar inte, och jag har även testat city och municipality.

$html.= "<div class='job-ad-city'>" . $showObj->WorkplaceAddress . "</div>";

  1. Ändra tidsformat på application_deadline (nuvarande är 2021-02-28T23:59:59). Så här ser koden ut nu:
    $html.= "<div class='job-ad-expires'>" . $showObj->application_deadline . "</div>";

Stort tack på förhand!

  1. Municipality är en del av WorkplaceAddress så utan att kunna PHP tror jag du får titta på hur du får ut nästlade JSON-objekt för det specifika språket.
    En vild gissning är nånting liknande
    $showObj->WorkplaceAddress.Municipality

  2. Här har jag ingen aning om men skulle själv tittat på hur man trunkerar fält i PHP eller jobbar generellt med timestamps.

Kanske inte så mkt till hjälp men jag noterar att PHP är ett efterfrågat språk för kod-exempel.
Mer specifika frågor om själva API’erna kan vi alltid svara på! Lycka till!

Skulle säga att det var till stor hjälp! Det fick mig att gå i rätt bana :slight_smile: Min lösning blev följande. Det fick bli en “fullösning” på timestamps, men resultatet utåt blir i alla fall som jag vill…

$html.= "<div class='job-ad-city'>" . $showObj->workplace_address->municipality . "</div>";
$html.= "<div class='job-ad-expires'>" . substr($showObj->application_deadline,0,-9) . "</div>";

Tack för hjälpen!

Kul och otippat att lyckas hjälpa till med PHP! Lycka till med kodandet!